home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-02 | 1.5 MB | 38,577 lines |
Text Truncated. Only the first 1MB is shown below. Download the file for the complete contents.
- Hints and Tips
- 1.1
- Using Electrohome Monitors
- 1.1
- Ian Nicholls of Kidderminster says that the “Electrohome” colour
- monitor, as sold by Opus, works OK on the Archimedes. All you have to do
- is make up the appropriate connector. (Or purchase one from CJE Micros
- or somesuch.) The pin connections for the Archimedes are given on the
- inside back cover.
- 1.1
- Using Modes 18 - 20
- 1.1
- Whilst on the subject of monitors, let me clear up the confusion there
- seems to be in the computer press about the high resolution modes and
- the extra video hardware which the 400 series machines are said to have.
- This extra hardware is NOT for driving modes 18 - 20. Even on the 300
- series, there is all the hardware needed to run these modes on a multi-
- sync monitor.
- 1.1
- The extra hardware in the 400 series is actually for even higher
- resolution graphics − it will go up to 1280 by 976 pixels in monochrome
- (160 characters by 122 lines of text) and, as with modes 18 - 20, it
- requires a special monitor. There is no industry standard for such
- monitors, and Acorn are still looking into providing a suitable monitor
- with their own badge on it. This extra high resolution is of course
- aimed at the CAD (computer aided design) market, and it is said that
- AutoCAD is being translated onto the Archimedes.
- 1.1
- Using a Multi-sync Monitor
- 1.1
- If you have a multi-sync monitor and want to get it working on the 300
- series, all you need to do is to switch the computer on whilst holding
- down the <R> key. This resets the CMOS RAM settings (so if, like me, you
- had changed them, you will have to re-configure again!) and it changes
- the configuration of the RGB output to run in multi-sync mode. It then
- allows you to access the extra screen modes that had been previously
- forbidden to those of us who only have standard monitors. If you should
- want to change the machine back again to run a standard monitor, you
- have to do another <R-power-up> which switches it back again (and re-
- sets the CMOS RAM settings AGAIN!). In other words each time you do an
- <R-power-up> it toggles between the two monitor settings.
- 1.1
- Using View
- 1.1
- Gerald Jones of Northampton tells us that only those of you who have
- gone from a Master Compact to an Archimedes will be able to get View
- going − for the time being, at least, because the ROM versions of VIEW
- will not work under the emulator. If you do have a disc version of View,
- Acorn tell us that the way to get it going is to copy 65ARTHUR from the
- MODULES directory on the Archimedes Welcome disc onto another disc and
- VIEW from the Compact Welcome disc and then use *BUILD !BOOT to create
- a boot file which consists of:
- 1.1
- *65ARTHUR
- 1.1
- *GO F800
- 1.1
- *LOAD VIEW 8000
- 1.1
- *GO 8000
- 1.1
- and then remember to type *OPT 4,3 to set it up so that it will execute
- the boot file on <shift-break>. All you have to do then is to chop up
- your VIEW keystrip and stick it together in the Archimedes keyboard
- format remembering that the f0 key functions are now on the <print> key!
- 1.1
- Attaching a 5.25“ drive
- 1.1
- Have you tried to get a 5.25“ disc drive linked up to the Archimedes?
- Presumably, you did the obvious thing and removed the cable from the
- p.c.b. to the 3.5” drive and plugged in the cable from the 5.25“ drive.
- And you too found that it didn’t work! Well, the official answer is that
- it is possible to connect a 5.25” drive but that there are “different
- connections”. Actually, it seems that the only difference is that they
- have put the connector in the opposite way round!
- 1.1
- Unfortunately, you can’t just turn the connector round because of the
- location lug on the side of it. The solution is either to file the notch
- off the side of the connector so that it will go in either way round, or
- buy a new 34-way insulation displacement connector which you can crimp
- onto the end of your disc cable, the opposite way round from the
- existing one, or buy a disc extension cable from a supplier such as CJE
- Micros (£15 + £1 p&p − address in Fact-File at the back of the
- magazine). The advantage of doing it that way is that the extension
- cable is long enough to stick out at the back of the computer through
- the podule connection slot so that you can connect and disconnect the
- extra drive without taking the lid on and off.
- 1.1
- You can, if you want, put a single 5.25“ drive as drive 1 or a pair of
- drives as drives 1 and 2. The extra drives must, of course, have their
- own power supply units and you need to type *CONFIGURE FLOPPIES 2 (or 3)
- so that the ADFS knows how many drives there are. You will also need to
- get inside the 5.25” drives in order to change the link settings to
- configure them as drives 1 (and 2) and you should also, theoretically,
- remove the terminating resistors − usually a set of resistors (dual-in-
- line or single-in-line) near the drive-select setting links. This is
- because there are already terminating resistors in the internal 3.5“
- drive and you should not have two sets. If you have a dual drive where
- they are on top of one another rather than side by side, you may find it
- difficult to get at the second drive in order to change the link
- selection. If so, the easiest solution is to make the top drive 2 and
- just remember that the lower drive is drive 1.
- 1.1
- One problem you may still find (which Acorn haven’t yet managed to
- explain) is that if you switch on the power to the disc drive before or
- at the same time as the computer, the computer seems unable to start up
- − you just get a blank screen. All you have to do though is to make sure
- you switch the computer on first and then the disc drive. You will also
- find that the desk-top program does not recognise the third drive − even
- if you have typed *CONFIGURE FLOPPIES 3, it only displays two disc icons
- on the screen. (If anyone works out how to modify the program to
- recognise all three, let me know.)
- 1.1
- ADFS bugs
- 1.1
- There are one or two bugs in the ADFS, though they are apparently
- reasonably obscure. The only one I have found myself is that if you try
- to *BUILD a !BOOT file onto a disc that already has a !BOOT file and you
- have left the disc write-protected, when you press <escape>, the system
- hangs up and you have to press <ctrl-break> or reset to escape. Some of
- the bugs have been corrected on the 0.03 version of the ADFS that you
- will find in the MODULES directory on your Welcome disc. This version
- will have to be *RMLOAD’ed, then to check that you have got the right
- version installed, type *HELP MODULES which gives you the current
- version numbers of all modules. It should say ADFS 0.03 (17 Jun 1987)
- instead of ADFS 0.02 (05 Jun 1987). Incidentally, the file name on the
- Welcome disc is Adfs0-03, not Adfs0_03 as you might tend to expect, so
- if you get a file not found error, check that you have typed it
- correctly.
- 1.1
- Have you discoveredÉ?
- 1.1
- I’d like this to be a regular feature. It consists of the sort of things
- that may be obvious to some people, but perhaps that you’ve noticed from
- reading the User Guide (or the Programmers’ Reference Manual when it
- becomes available). If you find something that you thought, “Well, I
- didn’t realise that!’, let us know. I’ll start it off this month with
- things that were new to me.
- 1.1
- • The pad character “|” which is the shifted back-slash character (the
- key just above the return key) can be used to “pad” out those incredibly
- long VDU codes that end with lots of zeros. For example, to switch off
- the cursor, you can use VDU23,1,0,0,0,0,0,0,0,0,0 which can admittedly
- be shortened to VDU23,1,0;0;0;0; can now be reduced to VDU23,1| which
- has the extra advantage that you don’t have to try to remember exactly
- how many zeros it needs to complete the command.
- 1.1
- • Instead of saying value=value+extra, you can use the new operator
- “+=” and say value+=extra which is a significant saving if, like me, you
- tend to use long variable names; likewise with −=extra. (Well with
- “604412 bytes remaining”, it may not be worth worrying about memory
- space, but it does save on printer ribbons!)
- 1.1
- • DANGER! • BEWARE! • WARNING!!!!!
- 1.1
- Newcomers to ADFS beware! If you have been using *WIPE * and looking
- through and saying “yes” or “no” to each, Don’t try it on ADFS! You will
- find that *WIPE * deletes ALL the un-locked files in the current
- directory. It’s like *DESTROY * but without even displaying a list of
- all the files it was about to delete and asking for confirmation. I
- discovered this ‘nasty’ the hard way − I lost about 10 programs at a
- stroke.It wasn’t too bad though as I had copied them across from DFS and
- only modified one or two.
- 1.1
- What you should say is *WIPE * C where the C stands for “Confirm” − then
- it asks you about each file in turn. − You have been warned!!!!
-
- Hints and Tips
- RGB Connector
- Hugh Nolan, of Old Roan, Liverpool, writes, “The pinout for the RGB
- connector on page 18 of Archive 1.1 indicates that it follows that of an
- IBM PGA rather than the more common EGA standard. If anybody has a
- monitor supplied with a lead for use with an EGA and wishes to build a
- new cable they should note that the EGA pinouts are as follows:
- 1.2
- 1.2
- 1 Ground 6 Secondary Green/Intensity
- 1.2
- 2 Secondary Red
- 1.2
- 3 Red 7 Secondary Blue/Mono
- 1.2
- 4 Green 8 Horizontal Retrace
- 1.2
- 5 Blue 9 Vertical Retrace
- 1.2
- I am currently using such a monitor with my BBC model B and the
- connections are fairly straightforward except that the BBC’s connector
- does not have separate vertical and horizontal syncs, so I have wired
- the composite sync to pin 9 (Vertical Retrace) of the monitor.”
- 1.2
- Using a multi-sync monitor
- 1.2
- A much easier way to change to a multi-sync monitor is to use:
- 1.2
- *CONFIGURE MONITORTYPE 1 and
- 1.2
- *CONFIGURE MONITORTYPE 0 to switch back to the normal monitor.
- 1.2
- Epson screen-dumps
- 1.2
- No doubt you have discovered the modules called HardCopyFX, MX and RX,
- and you too have discovered that they don’t work! Gerrald Fitton has the
- answer for us. His bug-fix has been passed on to Acorn who are also
- circulating it. The recipe is as follows:
- 1.2
- *LOAD Modules.HardCopyFX 10000 (that’s four noughts - beware of using
- three!)
- 1.2
- !&104E0=&E59C1020
- 1.2
- !&104E4=&E20100FF
- 1.2
- (now replace the disc for the one onto which you want to put the hard-
- copy module)
- 1.2
- *SAVE HardCopyFX 10000 + 700
- 1.2
- *SETTYPE HardCopyFX &FFA
- 1.2
- *STAMP HardCopyFX
- 1.2
- To use the module, *RMLOAD HardCopyFX (or just *HardCopyFX will do) and
- then call it with *HardCopyFX plus various parameters − *HELP HardCopyFX
- will show you what all the parameters are. Has anyone been experiment
- ing with it? What do all the parameters mean and what are their ranges?
- (Landscape, XScale, YScale, Margin and Threshold)
- 1.2
- Avoiding constant use of *MOUNT
- 1.2
- If you, like me, have a number of different discs and you can’t remember
- what is on which, you will probably be fed up of having to type *MOUNT
- each time you change the disc before you can get a catalogue. Try
- *CONFIGURE NODIR and <ctrl-break> and you will find that as long as you
- haven’t gone down to lower directories, you can just change the disc and
- do a *CAT (or *. works as on the BBC micro) and it will re-catalogue the
- disc in the drive. For more details, see James Lynn’s article about
- *CONFIGURE.
- 1.2
- File copying problems
- 1.2
- There are one or two problems with the *COPY command under the 0.2 and
- 0.3 operating systems but, not being used to using ADFS myself, I am
- never sure when it is a bug and when it is me being stupid. One thing
- you will find though is that when doing a *COPY from disc to disc using
- a single drive, it seems to hang up when it should be saying “Enter
- source disc and press the space bar” but don’t panic, it’s probably
- still OK and it’s just that the prompt has not been printed. Replace the
- disc you were expecting to put in next and press <space> and I think you
- will find that it carries on OK. If you haven’t discovered how to do
- disc to disc copying on one drive, see the “Have you discovered”
- section.
- 1.2
- File transfer problems
- 1.2
- If you are still having problems getting files across from other
- computers to the Archimedes, we have received one or two programs from
- subscribers. There is not enough space to print them in this issue, but
- if you drop us a line, we could send you a listing.
- 1.2
- Attaching a 5.25“ disc drive
- 1.2
- Acorn have told us that they would not recommend us to do this as the
- disc drive hardware in the computer is only designed to drive 3.5“
- drives with low control line loading and that if you want to attach a
- 5.25” drive, you should have suitable buffer circuitry added. The
- feedback we are getting for subscribers is that most of you are having
- success with this, though one person said that one drive he attached
- would not work whilst another one did and another person actually blew
- up the driver chip in the Archimedes. So, it’s up to you, but in the
- light of these comments from Acorn, it would clearly be a good idea to
- remove the pull-up resistors on the auxilliary drive.
- 1.2
- (For an alternative, check the “Hardware Available” section to see what
- Brainsoft have done to get round the problem.)
- 1.2
- Three floppies on the desktop
- 1.2
- In order to get three floppies on the desktop, i.e. assuming you have
- added a double 5.25“ disc drive, Gerrald Fitton again comes to our
- rescue. “In the BASIC library program called
- $.desktop.accessory.filehandlr you will find that lines 130 and 140
- accept the first and second floppies, so you will need an extra line:
- 1.2
- 145 IF floppies%>2 THEN PROCsys _addtoiconbar_left(“floppy2”,É
- 1.2
- etc as per lines 130 and 140 and you will have to make a further copy of
- lines 290 to 420 (which refer to floppy 0) emulating the changes made to
- generate lines 430 to 560 which refer to floppy 1 by inserting “2” in
- the appropriate places.
- 1.2
- Fortran 77
- 1.2
- Tom Fortescue warns potential purchasers of Fortran77 that (a) it needs
- at least 1Mbyte and is therefore unusable on the A305 (I haven’t been
- able to check this with Acornsoft.) and (b) it does not come with an
- editor, so unless you’ve got View or Wordwise or Inter-Word or somesuch,
- you won’t get very far with it!
- 1.2
- Stereo speakers
- 1.2
- Enoch Mayer says that he has bought, for around £25, a couple of
- “Realisitic” (Tandy) amplified speakers designed for use with personal
- stereo radio/tape players. (Model: Minimus-0.6 amplified speaker system
- Cat N¼ 40-1259E) Although they run off two sets of four size-C bat
- teries, they can easily be adapted to run off small battery eliminators.
- They tone in nicely with the Archimedes, but the best thing is that when
- no sound signal is received they automatically shut off, thus eliminat
- ing the “fuzz”!
-
- • RAM upgrades − If you want to up-grade the ram yourself, rather than
- trying to remove the main p.c.b. to get at the sockets where the new
- chips are to go, you can remove the front fascia. To do this, remove the
- lid, then disconnect the wires that go to the speaker and the ‘power on’
- LED by pulling the four-pin socket off the pins on the board. The tongue
- at the front of this socket is a clip that holds the socket in place, so
- ease this forwards and the socket should slip off easily. Then you can
- remove the fascia itself by undoing the five screws, three underneath
- and one at each side. Care should be taken with the eject button on the
- disc drive as this can break off fairly easily if roughly handled. (Some
- say, will inevitably break off, but a bit of super-glue or the like is
- all you need to stick it back in place.) You will then have to remove
- the bridge that supports the disc drive(s). This can be done by removing
- one screw underneath the computer (do this first) then two screws at the
- side. Plug in the chips and reverse the process, again being careful of
- the disc eject button.
- 1.3
- • Fitting a second drive is supposed to be a ‘dealer only’ upgrade,
- but as long as you know a bit about electronics and vaguely what happens
- inside computers, it is not too difficult to fit it yourself. However,
- you should watch out that the front fascia plate is not too high. If it
- is, it will bear on the disc and may cause an error when you try to
- access the disc. I discovered this when I found that the drives worked
- OK until I put the new two-hole fascia in place. My solution, when this
- happened, was “brute force and ignorance”! The metal bracket on which
- the drive is supported has a little bit of “give” in it − enough to
- raise the front of the drive by the couple of millimetres necessary to
- lift it away from the fascia.
- 1.3
- The other important thing to know is that to configure your second drive
- as drive 1 you need to move the tiny black slider switch at the side of
- the drive. It is a four position switch and usually comes in position 0,
- so one click will move it to position 1.
- 1.3
- • Anti-Buzz Fix − There are, apparently, two different buzzes. One is
- what occurs after you have pressed <escape> or <break> and the other a
- much more annoying buzz which not all computers seem to have. The first
- buzz is a software problem which is fixed in the 1.2 Arthur, so I am
- told, but the other requires a hardware fix which is supposed to be done
- by dealers as a free modification, but if you are deft with a soldering
- iron and are willing to risk your warranty, here’s what to doÉ
- 1.3
- The solution, according to Acorn’s technical services department isÉ
- 1.3
- “Solder a 100µF, 10 volt electrolytic capacitor across pins 7 (positive)
- and 4 (negative) of IC68. The capacitor should be kept as close to the
- p.c.b. as possible and should be secured to the board with glue or hot
- wax.”
- 1.3
- The bad news is that IC 68 is underneath the bar that supports the disc
- drive(s)! The easiest way to get at it is actually, (1) take off the
- lid, (2) unplug the lead that goes to the speaker and power-on LED
- (beware, the socket on the ends of the cable has a lip that locks it
- onto the pins on the board − ease the lip forward before trying to pull
- the socket off), (3) take off the front fascia (one screw at each side
- and three under the front edge) and (4) unscrew the drive-support bridge
- (one screw underneath and two at the side).
- 1.3
- • Problems with monitors − Some folk are having problems with certain
- monitors. If the problem is lack of contrast, use an oscilloscope to
- check the voltage output levels from the Archimedes. If they are less
- than 0.7 volts peak-to-peak you may need to change the values of the
- output resistors. Acorn have changed resistors R20, R41 and R59 from 68
- ohms to 43 ohms, so if you want to increase the output voltage, you
- could either change the resistors or solder a 120 ohm resistor in
- parallel with each.
- 1.3
- The other problem with some monitors, especially the NEC and Fujitsu
- multisync monitors, is of getting a greenish tinge on white areas. This
- comes about because Acorn put the sync signal onto the green line which
- is apparently what certain monitors expect. To remove this sync signal,
- simply remove resistor R39 − a quick snip with a good pair of side-
- cutters should do it, but make sure you get the right resistor!
- 1.3
- (When I tried to do these modifications, I found it wasn’t too easy to
- decide which resistor was which because the numbers are actually
- underneath the resistors. If you look at the line of resistors coming
- away from the video output socket you will see that they are: R1, R3,
- R18, R20 (68R), R35, R37, R39 (1k2), R41 (68R), R45, R50, R52, R59
- (68R), R60, R63 and R67.)
- 1.3
- • Archimedes on Econet − As far as we can gather, the Econet hardware
- to be added to the basic 305 or 310 is just the same as the module which
- you would purchase for the Master or Compact − certainly, the part
- supplied by Acorn to one of our readers had the same part number as the
- Master equivalent. One problem which Econet users may find on earlier
- systems is that even if you only want to use the disc system, you still
- have to have a clock signal available, otherwise the computer hangs up!
- Presumably this will be corrected in the 1.2 operating system! If you
- are used to using !BOOT files on the network, you will need to change
- them all to !ARMBOOT as well as having !BOOT files for the BBC. The
- Archimedes will work quite well on a Level 3 server but there are no net
- utilities like VIEW, REMOTE, NOTIFY, ROFF etc. The only one provided is
- an enhanced FREE which includes RDFREE with it. Acorn have “no plans”
- for providing these utilities. This, for schools, is quite a problem as
- you cannot get to see what is going on around the net. However, software
- transfer around the net is very easy. (These comments were kindly
- provided by Mr V Smith of King Edwards School, Lytham.)
- 1.3
- • Control key abbreviations − Lazy typists like me will like to know
- that if you want to type, say, MODE12 perhaps to list a program that was
- running in different screen mode or within a window, you can be
- abbreviate it to <ctrl-V><ctrl-L>. What you are doing is the equivalent
- of VDU22,12. On the BBC micro this was not a good idea because BASIC was
- unaware of the change of mode and would start to over-write screen
- memory with variables, but it is OK on the Archimedes because the screen
- memory is protected by having configured a certain amount of screen RAM.
- If you try it and then type PRINT MODE, it knows it is in mode 12. Other
- mode numbers can be worked out − mode 0 would be <cvtrl-V><ctrl-@>, 1 is
- A, 2-B, 3-C, 4-D, 5-E, 6-F, 7-G, 8-H, 9-I, 10-J, 11-K, 12-L, 13-M, 14-N,
- 15-O, 16-P, 17-Q, 18-R, 19-S, 20-T, 21-U.
- 1.3
- This can be extended to things like changing background colour, say to
- blue, with <ctrl-S><ctrl-@><ctrl-D><ctrl-@><ctrl-@><ctrl-@> (where
- <ctrl-@> is actually done with <ctrl-shift-2>) but there comes a limit
- where it is quicker to type in the command rather than remembering the
- control codes. You can even do all the plotting functions in this way −
- try, for example, <ctrl-Y><e><ctrl-C><ctrl-C><ctrl-C><ctrl-C>. (That’s a
- lower case “e”, not <ctrl-e> so switch caps lock off and just press <e>.
- If nothing happens, do a mode change first to a graphics mode, say MODE
- 12, then try it.)
- 1.3
- To change mode when in the Arthur Supervisor, you could use, say, ECHO
- || V || L or ECHO || S || @ || D || @ || @ || @ or you could use ECHO
- <19><0><4><0><0><0> but you can again just type in the <ctrl> sequences
- as mentioned above.
- 1.3
- • Special effects in View − You can use *ECHO or use the control key
- sequences mentioned above when you are using View. Also, if you want to
- put the ‘format block’, ‘move block’ and ‘delete block’ commands onto
- function keys 10 to 12 (instead of using the <print> key) you can use:
- 1.3
- *KEY 10 || ! || L
- 1.3
- *KEY 11 || ! || \
- 1.3
- *KEY 12 || ! ,
- 1.3
- Despite what it says in the User Guide about the pageup and pagedown
- keys not being used, they seem to work in View and they do actually move
- you a page at a time up and down.
- 1.3
- • *RMtidy − Beware that on the 0.20 Arthur, this can cause the machine
- to crash whenm you subsequently try to us *RMLOAD.
- 1.3
- • There is apparently another undocumented screen mode which will be
- available on Arthur 1.2 − mode 21 which is 640 x 512 in 256 colours,
- though it will obviously only be usable on a multi-sync monitor and uses
- 320k of RAM! Also, on the 400 series there will be two extra high
- resolution monochrome modes for 64kHz monitors − mode 22 which is 160 x
- 122 text with 1280 x 976 graphics and mode 23 which is text only at 144
- x 54. These use the extra hardware that is on the 400 series boards
- though it looks as if there should be space for the chips on the 300
- boards if you are prepared to risk fitting them yourself. There are no
- sockets, so you would have to solder-suck all the holes first, and it’s
- a multi-layer board.
- 1.3
- • Delete on keypad − If you compare the keypads of the Master and the
- Archimedes, you will see that where the Archimedes has a fullstop, the
- Master has a delete key. If you think it would be useful to have the
- delete function on the keypad, turn the num lock LED off and try
- pressing the fullstop key!
- 1.3
- • Function key definitions − If you want to know what the current key
- definitions are, *SHOW K* will print them on the screen. The only slight
- confusion is that they appear in alphabetic order − KEY$0, KEY$1,
- KEY$10, KEY$11, KEY$12, KEY$13, KEY$14, KEY$15, KEY$2, KEY$3 etc!
- 1.3
- Function key 0, as you probably know by now, is put onto the PRINT key,
- but where are the other function keys − 13, 14 and 15? The only one I
- have found is 13 which is on the INSERT key The other thing to watch is
- that although there is a separate key for function key 10 (the break key
- on the BBC micro), when you press <break>, KEY$10 is expanded as it was
- on the BBC micro! (That was on 0.2. Has it changed in later versions of
- the OS?)
- 1.3
- • Diary & notepad − The diary and notepad can be saved onto disc by
- putting the pointer on the pad or the calendar and clicking the middle
- button. It then asks for confirmation that you want to save it. The
- notepad is saved as “notepad” and the diary as “Diary87” (or whatever
- year it is for). To load them back in again later, you have to open up
- the disc and click on the required file before clicking on the diary or
- notepad with the middle button and selecting LOAD. When saving, the name
- is fixed by the desktop program, but once it has been saved, you can
- rename the file if you want to save more than one, though obviously this
- applies more to the note-pad as I know that some of you are still having
- to use the notepad as a word-processor! Having said all that, I have to
- admit that when I was trying this out, I had problems saving the
- calendar − I kept getting “Disc full” or “Disc in need of compaction”
- errors. Any offers of explanation?
- 1.3
- • The SYSTEMDEVS module is a set of logical device drivers that can be
- used from Arthur. They make the device appear to the programmer as if
- they were a file system. In Arthur 0.20 you have to load the module from
- the Welcome disc, but in 0.30 onwards it should be in ROM. They include
- LPT:, KEYBD:, PRINTER:, VDU and RAWVDU: so a simple command to copy a
- file to screen would be *COPY FILE VDU: and any non-printing characters
- appear in the format used to program the function keys, i.e. using pad
- characters so that, for example, ASCII 12 comes out as || L.
- 1.3
- What is the point of these facilities? Well, you can use them to
- redirect the flow of data into or out of a program or relating to an
- Arthur command. Thus you can say *EX {>info } which sends the output
- from the EX command to a file called “info” and *CAT {>>info } will then
- ADD the catalogue information onto the end of the info file, or *CAT
- {printer: } would print out the catalogue. *BASIC {<data } PROG would
- run the BASIC program PROG and take it input information from the DATA
- file rather than from the keyboard. Another possible application is for
- debugging a program that is sending data to a disc file. Rather than
- stopping the program and examining the disc file periodically, you could
- change the line in the program where you set up the file for output and
- use instead X% = OPENOUT “PRINT:” then subsequent PRINT#X%’s or
- BPUT#X%’s would go to the printer. If the output is un-printable (or do
- I mean non-printing?!) characters then you could set the printer into a
- hex dump format which many dot matrix printers have these days. Then a
- final suggestion for an application would be when using network and
- ADFS. To avoid switching between the two, you could say X%=OPENOUT
- “ADFS:$.TEST”. This means that you could presumably have files open on
- both the network and the disk at the same time, but not having a network
- for my solitary Archimedes, I cannot check this!
- 1.3
- (These comments were derived from an article in “Eureka” the Auckland
- BBC User Groups’ Archimedes Newsletter. Many thanks to the editor, Tony
- Krzyzewski. Write to him if you want more details of Eureka c/o Barsons
- Computers, P O Box 26287, Epsom, Auckland, New Zealand.)
- 1.3
- • ROMs that work under the emulator.
- 1.3
- Acornsoft’s Comal, Prolog and Lisp seem at first look to be OK, and one
- reader comments that Logotron’s Logo is OK but that the graphics are
- “funny” − whatever that means.
- 1.3
- Damon Hoggett reckons that to get the View series ROM’s to work, you
- need to *LOAD them at &10000 and then poke the following addresses to
- &EA (a NOP instruction) as explained last month. View B3.0: &128A2,
- ViewSheet B1.0: &10690, 691 and 692 and ViewStore 1.0: &12BCE, BCF and
- BD0 then you *SAVE filename 10000+4000 8000 8000. We made a mistake with
- the mention last month of Viewstore 1.1 (page 23). The poke should be
- ?&12BE2=&EA, not 1ABE2 and you should also poke the next two bytes,
- &12BE3 and E4.
- 1.3
- BBCSoft’s Monitor ROM seems to work OK with the emulator. You can
- apparently assemble, disassemble and single-step through 6502 machine
- code without problems.
- 1.3
- Some folk are saying the Inter-Chart works under the emulator, though
- not option 9 to import data.
- 1.3
- • BASIC editor on 0.20 OS − If you are in BASIC and you type EDIT,
- BASIC issues a *ARMBE command, so if that module is not already loaded
- into memory, it will look in the operating system ROM and then in the
- current directory on the current drive for the ARMBE module. If it is
- not there, it will come up with “Bad command”. However, if it finds it,
- it will load it into memory. Then to enter the editor, you just type
- EDIT again. So, until you get your 1.2 OS(!) it is a good idea to copy
- the ARMBE module into the directory in which you keep your BASIC
- programs so that it is ready to use at any time.
- 1.3
- • No room in RMA − If you are in BASIC and try to *RMLOAD a module,
- you may get “No room in RMA” even if the configuration is set to allow
- enough space for that particular module. But if you QUIT first into the
- Arthur supervisor you can do the RMLOAD and then go back into BASIC and
- OLD to get your program back. However, I think I would tend to save the
- program first just in case!
- 1.3
- • BASIC V tips from Colin Dean, author of ‘Advanced BASIC’ (Tubelink’s
- BASIC V look-alike for the BBC & Master)
- 1.3
- In the LIST IF command, if you put a space between the IF and the
- <string> that follows it, you get a different effect. For example if you
- have two lines:
- 1.3
- 10RECTANGLE 1,2,3,4
- 1.3
- 20 RECTANGLE 5,6,7,8
- 1.3
- Then “LIST IF RECTANGLE” shows line 20 only, whereas “LIST IFRECTANGLE”
- shows both.
- 1.3
- A neat way to test more than one expression at once, without having to
- use heavily nested IF’s is to use “CASE TRUE OF”. For example,
- 1.3
- CASE TRUE OF
- 1.3
- WHEN X=3 AND Y=4:PRINT“X=3 and Y=4”
- 1.3
- WHEN X>7, Z=0:PRINT“X>7 OR Z=0”
- 1.3
- ENDCASE
- 1.3
- However, you should beware of mixing numerics and logicals in CASE
- expressions. For example,
- 1.3
- X = 6
- 1.3
- CASE X OF
- 1.3
- WHEN TRUE : PRINT “TRUE”
- 1.3
- WHEN FALSE : PRINT “FALSE”
- 1.3
- OTHERWISE PRINT “SPURIOUS”
- 1.3
- ENDCASE
- 1.3
- this prints “SPURIOUS” because ‘6’ is neither true (−1) or false (0).
- 1.3
- • Improved boot file for WWPlus − The !BOOT file on the Archimedes
- Wordwise Plus discs is a BASIC program which checks whether the 6502
- emulator is installed and if not loads it off the Welcome disc. If
- instead you copy 65arthur onto your Wordwise Plus discs you can use a
- simpler boot file which just says:
- 1.3
- QUIT
- 1.3
- 65ARTHUR
- 1.3
- WW+
- 1.3
- and then do a *OPT 4 3 so that the computer EXEC’s the boot file instead
- of running it. If you are using the disc version of CP-ROM, just add
- 1.3
- :SELECT SEGMENT 8
- 1.3
- :LOAD TEXT “$.CP-ROM.CPstart”
- 1.3
- *FX138,0,152
- 1.3
- to the boot file and it will start up the CP-ROM as well.
- 1.3
- • Have you seen the whale?! − When playing Zarch, one or two folk have
- discovered a whale that appears in the sea (or is it a shark or a sea-
- monster?). You get 1000 points if you exterminate it and sometimes it
- “beaches” itself and becomes a much easier target. By the way, how are
- the scores going? I’ve just about managed to avoid being called a wet
- lettuce or a stuffed aubergine, but one reader, Malcolm Roberts says his
- son has reached 53,291.
- 1.3
- (STOP PRESS! I’ve just seen it too − very fleetingly. It was bluish with
- a zig-zag fin on its back!)
- 1.3
-
- • Having asked last time about function keys 14 and 15, it seems that
- they are only available when the cursor editing is switched off by doing
- a *FX4,2 after which, cursor right, down and up give definitions 13, 14
- and 15. (Remember that 13 is normally available on the insert key
- anyway.)
- 1.4
- • Word-Perfect does not work under the PC-Emulator at present. This is
- due to a bug in the emulator which is being fixed − a new version will
- be available “shortly”.
- 1.4
- • If you want to read the mouse when using the 6502-emulator, this can
- be done in BASIC IV by using ADVAL 7 and 8 to return the X and Y co-
- ordinates respectively. 6502 machine code programs can be modified to
- use OS_Byte 128 with X=7 to give the X value and X=8 to give the Y
- value. The co-ordinates are returned in the X and Y registers, X being
- the low byte and y the high byte.
- 1.4
- If you want to read the mouse buttons from BASIC IV, use INKEY(-n) where
- n=10, 11 and 12 for select, menu and adjust respectively and in machine
- code use OS_Byte 129 with X containing the -n number (&F6, &F5 and &F4)
- and Y containing &FF.
- 1.4
- • Users of the Acorn colour monitors may not have realised that there
- is a switch inside the control panel at the front of the monitor which
- switches off all but the green gun. Depressing this switch makes the
- display slightly easier to read, especially if you are trying to use a
- 132 column mode.
- 1.4
- • Setting the “*TIME” format − The output format used by *TIME can be
- changed via a ‘*SET Sys$DateFormat’ command. The following is a list of
- the valid parameters and the result they will return:
- 1.4
- %am Display ‘am’ or ‘pm’ depending on the time.
- 1.4
- %pm Display ‘am’ or ‘pm’ depending on the time.
- 1.4
- %ce Current century
- 1.4
- %cs (Centiseconds) Hundredths of a second
- 1.4
- %dn Day number (001 = 1st January)
- 1.4
- %dy Day of the month
- 1.4
- %mi Minutes
- 1.4
- %mn Month number
- 1.4
- %mo Current month (e.g. ‘January’)
- 1.4
- %m3 Current month abbreviated to 3 characters (e.g. ‘Jan’)
- 1.4
- %se Seconds
- 1.4
- %st Day of the month trailer (i.e. ‘st’, ‘nd’, ‘rd’ or ‘th’)
- 1.4
- %we Weekday (e.g. ‘Wednesday’)
- 1.4
- %w3 Weekday abbreviated to 3 characters (e.g. ‘Wed’)
- 1.4
- %wk Week number (since start of year)
- 1.4
- %wn Weekday number (1 = Sunday, 7 = Saturday)
- 1.4
- %yr Current year (e.g. 87)
- 1.4
- %12 Hours on 12 hour clock
- 1.4
- %24 Hours on 24 hour clock
- 1.4
- Note that changing the format does not affect the TIME$ format as used
- in BASIC V.
- 1.4
- The default setting, which is: %w3,%dy %m3 %ce%yr.%24:%mi:%se, can be
- seen by typing *SHOW S*.
- 1.4
- If the date or the year is changed, the day of the week is automatically
- recalculated, so no errors occur. (See competition results on page 46.)
- 1.4
- Other characters may also be inserted into the definition of the *TIME
- format. For example,
- 1.4
- *SET Sys$DateFormat %we, %dy%st %mo, %ce%yr. Time: %24:%mi [%se seconds]
- 1.4
- will produce output in the form: “Monday, 07th December, 1987. Time:
- 12:07 [45 seconds]”.
- 1.4
- If you want to strip off the leading zero on the %dy output, use %zdy%st
- which will produce “7th December”. If you want, for some reason to have
- the character ‘%’ as part of the format, use “%%”.
- 1.4
- If you want to split the string into several zero-terminated strings,
- you can use ‘%0’ which will insert a zero byte into the string.
- 1.4
- New time formats in BASIC − If all you want to do is print out the value
- of time within a BASIC program you can simply use the star command *TIME
- as a line within the program. If however you want to pick up the time as
- an actual string, you need to use the following function:
- 1.4
- DEF FNnewtime
- 1.4
- LOCAL Workarea, Time$
- 1.4
- DIM Workarea 256
- 1.4
- ?Workarea = 3
- 1.4
- SYS “OS_Word”,14,Workarea,256
- 1.4
- SYS “OS_ConvertStandardDateAnd Time”,Workarea,Workarea,256 TO Time$
- 1.4
- =Time$
- 1.4
- Help!!! The format which the system uses to record time and date is a 40
- bit number (as used to store the datestamp of a file) but we have not as
- yet found a system routine to convert any date into this format. Has
- anyone found such a routine or written anything of the sort?
- 1.4
- • Break/escape effects − To control the effects of <escape> and
- <break> with various combinations of <ctrl> and <shift>, you can use
- *FX247,n where n is a binary number whose eight bits control the various
- effects as follows:
- 1.4
- Bits 7 and 6 control action of <shift-ctrl-break>
- 1.4
- 7 6
- 1.4
- 0 0 − “Normal action” (= hard reset + boot drive 0)
- 1.4
- 0 1 − Acts like <escape>
- 1.4
- 1 0 − Disables <shift-ctrl-break>
- 1.4
- Bits 5 and 4 control action of <ctrl-break>
- 1.4
- 5 4
- 1.4
- 0 0 − Hard reset
- 1.4
- 0 1 − Acts like <escape>
- 1.4
- 1 0 − Disables <ctrl-break>
- 1.4
- Bits 3 and 2 control action of <shift-break>
- 1.4
- 0 0 − Boots disc in drive 0
- 1.4
- 0 1 − Acts like <escape>
- 1.4
- 1 0 − Disables <shift-break>
- 1.4
- Bits 1 and 0 control action of <break>
- 1.4
- 0 0 − Soft reset
- 1.4
- 0 1 − Acts like <escape>
- 1.4
- 1 0 − Disables <break>
- 1.4
- The default setting (on 0.20 OS) seems to be *FX247,1 so that all works
- “as normal” except that the break key has been turned into another
- escape key. Typing *FX247,0 or just *FX247 turns the break key into the
- old “proper” break key that BBC owners will remember, i.e. it does a
- soft reset, as does the reset button on the back of the keyboard.
- 1.4
- • When you re-load a picture created by the ARM-Paint program, you
- sometimes find that certain of the colours are flashing. To avoid this,
- add a line to the PAINTING program:
- 1.4
- 18165 *FX9
- 1.4
- which should fix the problem. It actually flashes while the picture is
- being loaded but then the flashing stops when this line is executed.
- 1.4
- • Long printer cables. Those of you who have been using very long
- printer cables on the BBC micro will find that the Archimedes’ printer
- output has not got sufficient drive to cope with more than about 2
- metres of cable. The only way to get round this would be to use a
- printer buffer that had a higher output drive capability.
- 1.4
- • For an interesting sound effect (on 0.30 Arthur), type in
- “*Configure Sounddefault 1 7 7” followed by <ctrl-break>. This alters
- the bell sound as produced by VDU7. To return to normal, set Soundde
- fault 1 7 1.
- 1.4
- • For those who still haven’t got a word-processor (you did fill in
- your registration form, didn’t you?!?) and are wanting to use the BASIC
- editor as a wordprocessor, type *KEY0 L.O8||ML.||B||M||A||?||A||?||C and
- you will find that the ‘print’ key lives up to its name.
- 1.4
- • ROMs that work under the emulator. The second processor version of
- ISO Pascal (files Dpascal and Dcomp on the disc that comes with the two-
- ROM set) works fine under the emulator though the compilation time is a
- little slower than on the Beeb.
- 1.4
- Anyone who has the EDIT software from the BBC Master can transfer it to
- the Archimedes and it seems to work OK. There appears to be a strange
- message when the software is called and if the function key help screen
- is selected, it looks a bit peculiar. If you only want to process small
- amounts of text (about 30k) then use EDIT − it’s much cheaper than
- buying TWIN for £30.
- 1.4
- • The default values of the parameters in the HardcopyFX module are
- 0,1,1,0,1 which gives, in order, landscape (i.e. sideways − to get
- portrait, use 1), X and Y scale factors of 1 (no limit, it seems, but
- you can’t use fractions), the margin which is measured in 1/72 nds of an
- inch with a maximum of 576 and finally the threshold (the colour number
- which determines whether a dot is printed or not, I presume) which can
- take values up to 255. There is a clever “Printer Time Out” error built
- into the code in case the printer is not connected.
- 1.4
- • Switching off the desktop on Arthur 1.2.
- 1.4
- If, having changed from operating system 0.2 to 1.2, you don’t like
- going into the desktop every time you switch on, you can *CONFIGURE
- Language 4 and <ctrl-break> and you will be brought into BASIC instead.
- The desktop can then be called up with *DESKTOP at any time. If you
- decide to go back to initialising into the desktop, *CONFIGURE Language
- 3 should do the trick.
- 1.4
- Do keep the hints & tips coming. They are one of the most useful parts
- of the magazine − do you agree? We could do with more feedback about
- what you like and what you don’t.
- 1.4
- The trouble is that you remember that you read something but cannot
- remember in which issue or on which page so we’re hoping to do a full
- Archive index − anyone like to start it off for us? Would you like just
- a paper index or one on database? Let me know what you think.
- 1.4
- Watch out too for a binder for your Archive magazine. More details next
- month.
-
- • Text files for BASIC. I always used to write my BASIC programs in
- Wordwise and put an AUTO command as the top line then go into BASIC and
- NEW and then *EXEC <filename>. But IÕve just discovered (what IÕm sure
- you all knew already) that BASIC can do it for me. You donÕt have to put
- AUTO at the top you just say *BASIC -LOAD <filename> and it will load
- the text version of the program and put line numbers onto it. However,
- as with the *EXEC technique, you cannot use long multi-statement lines
- or you will get the “Line too long” error.
- 1.05
- (One reader, who was using Arthur 0.2, found that text files longer than
- 32k got corrupted, but I tried it on my system with BASIC 1.02 and
- Arthur 1.2 and it seemed OK.)
- 1.05
- • Fast screen save. This is obviously something which a number of you
- have been thinking about. I got a lot of response to my pleas for help.
- Several of you gave ways of *SAVEing the screen information from the
- appropriate bit of RAM and re-loading it there, though this obviously
- will not bring with it the palette information or the correct mode. For
- example:
- 1.05
- DEF PROCscreensave(filename$)
- 1.05
- LOCAL K%
- 1.05
- CASE MODE OF
- 1.05
- WHEN 0,1,4,5,6 : K%=20
- 1.05
- WHEN 2,3,8,9,11,18 : K%=40
- 1.05
- WHEN 7,10,12,13,14,19 : K%=80
- 1.05
- WHEN 16,17 : K%=132
- 1.05
- WHEN 15,20 : K%=160
- 1.05
- ENDCASE
- 1.05
- !&80=149:!&84=-1
- 1.05
- SYS 49,&80,&88 : REM OS_ReadVduVariables
- 1.05
- OSCLI“SAVE ”+filename$+“ ”+STR$
- 1.05
- ~(!&88)+“ +”+STR$~(K%*1024)
- 1.05
- ENDPROC
- 1.05
- This takes only a second or two to save the screen. It can be reloaded
- by typing *LOAD filename. The program saves the whole screen, not just
- the graphics window. You must not have scrolled the screen prior to
- saving or re-loading, but a CLS before re-loading will cancel the
- scrolling. Also, you must be in the right mode for the screen you are
- about to load and you need to have the same screen colour definitions
- set up.
- 1.05
- What we have been promised though is a module, which we hope to publish
- next month, which will give you legal *commands (or SWIs) for loading
- and saving screen information including palette and mode and you will
- find that it is several times faster than the existing SCREENSAVE
- routines.
- 1.05
- • Extra help on BASICÉ (OS1.2) If you type *BASIC -help<return> you
- get a bit more help information about BASIC. (But does anyone know what
- the last two bits refer to? i.e. what is an “in-core” program? Does it
- mean you can have more than one program in memory?)
- 1.05
- • ADFS: If you name all your discs with *NAMEDISC, the Archimedes will
- remember the previously mounted discs. So, for example, if you put in a
- disc called TESTING and you *MOUNT it and then put in a disc called
- BASICPROGS and *MOUNT that, you can then see the directory of TESTING
- without putting the disc back in again. All you do is type *MOUNT
- TESTING and you can *CAT it. If you then want to look at the disc that
- is in the drive, you will of course have to *MOUNT again. The only
- problem occurs when you have backup discs because they will have the
- same name — this gives “Ambiguous disc name”.
- 1.05
- • Sprite Editor. “To create a new spriteÉ” It took me ages to find out
- how to create a new sprite. The manual tells you to click on the
- “Create” box and “you are then prompted for a name and a mode”. I was
- expecting a prompt something like: “Please enter name:”. I saw the words
- “Create sprite” appear at the bottom of the screen and assumed it wanted
- some sort of confirmation that that was what I wanted to do, but
- whatever I did, the words disappeared again! In fact that is the actual
- prompt that the manual was referring to! All you do is type in the new
- name and press <return>. You would have thought they could have put in a
- more obvious prompt than that — or maybe just switched on the cursor to
- indicate that it was time to type something rather than click on the
- mouse buttons, but perhaps I have been spoiled by using the Apple Mac
- where prompts are rather more obvious and logical! Huhh!
- 1.05
- • Reading the catalogue. An easier way to read the contents of a
- catalogue, rather than reading it off the screen (see Gus GemÕs article
- last month) is to use SYS “OS_GBPB” as followsÉ
- 1.05
- DIM C% 999
- 1.05
- !&80=&2A00
- 1.05
- SYS “OS_GBPB”,9,&80,C%,999,0,
- 1.05
- 999 TO ,,,ENTRIES
- 1.05
- This stores the filenames and sub-directories of the current directory
- at the address C%, in alphabetical order and each terminated by a zero
- byte. The number of entries is stored in the BASIC variable ENTRIES.
- 1.05
- • Neater than OSCLIÉ SYS 6 (equivalent of FX calls) is much neater
- than using OSCLIs: e.g. Matthew TreagusÕ screen bank switching would
- look neater if, instead of using OSCLI (“FX112,”+STR$N%) he had used SYS
- 6,112,N%. If you donÕt like the anonymity of SYS 6, you can use SYS
- “OS_Byte”,112,N%. (See GeraldÕs article on page 12.)
- 1.05
- • BeebugÕs Masterfile can be made to work on the Archimedes without
- using the emulator — it just needs a very few modifications — contact
- DrÊÊPeter Catermole at Winchester College, Kingsgate Road, Winchester,
- SO23 9PG.
- 1.05
- • BBC ROMs — Continuing the saga of poking various bytes to get BBC
- ROMs to work under the emulator, View B3.0 should apparently have A8A1,
- 2 and 3 poked to &EA and Viewspell 1.0, &820F, 8210 and 8211 likewise.
- 1.05
- • When setting the clock, the setting box sometimes covers the face of
- the clock, so point at the bottom right hand corner of the clock box and
- then press the middle mouse button.
- 1.05
- • Plugging modules in and out. ItÕs all very well to have lots of
- modules in the 1.2 ROM but, at power up, several of these modules are
- installed into ram which cuts down your available memory. Exactly which
- ones are installed is set by various bytes in the CMOS ram. To find out
- what all the modules are and whether they are actually active, type
- *ROMModules. (or just *ROM. for short.) You can “unplug” the modules by
- using *UNPLUG <modulename> and it stays unplugged until you “insert” it
- again with *RMREINIT <modulename>. It seems that the extra space does
- not become available until you press <ctrl-break>. If you type *UNPLUG
- without a module name it tells you which modules are currently
- unplugged.
- 1.05
- • HowÕs this for a screen dump? (sent in by Ken Yeardley) It is for
- mode 0, it works on the NEC PC8023, it can be put on a function key and
- it only takes 118 seconds.
- 1.05
- VDU2,1,27,84,1,&31,1,&36: FOR
- 1.05
- A%=&1FDCFB0 TO &1FDCFFF:VDU2,
- 1.05
- 1,27,83,1,&30,1,&35,1,&31,1,&32:
- 1.05
- FOR B%=A% TO A%-20400 STEP-&50:
- 1.05
- VDU1,?B%,1,?B%: NEXT: VDU1,10:
- 1.05
- NEXT: VDU3
- 1.05
- The reason it is so short is that the NEC printer has the MSB and LSB of
- the byte that defines which pins hit the paper, the opposite way round
- from Epson printers. (See page 9 for a sample screendump.
- 1.05
- • Beware the microwave! One reader was having problems with data
- corruption on the RS423 but it turned out to be only when his wife was
- using the microwave oven four yards away, the other side of a brick
- wall!
- 1.05
- • HereÕs a little routine sent in by Mike Hobart which uses the
- debugger module for disassembly and memory dumps. It doesnÕt quite rival
- Toolkit, but itÕs a bit cheaper!
- 1.05
- INPUT“Disassembly or Memory dump? (D/M)”,R$
- 1.05
- CASE R$ OF
- 1.05
- WHEN “d”,“D” : N%=FNi:REPEAT PROCx(“I”,N%,“ +10”):UNTIL FALSE
- 1.05
- WHEN “m”,“M” : N%=FNi:REPEAT PROCx(“”,N%,“ +FF”):UNTIL FALSE
- 1.05
- ENDCASE
- 1.05
- END
- 1.05
- DEFPROCx(S$,M%,L$)
- 1.05
- WHILE INKEY(-99)
- 1.05
- OS_CLI(“MEMORY”+S$+“ ”+
- 1.05
- STR$~(N%)+L$)
- 1.05
- N%=N%+100
- 1.05
- ENDWHILE
- 1.05
- ENDPROC
- 1.05
- DEFFNi
- 1.05
- INPUT“From(Address &nnnnnn)”‘N$
- 1.05
- PRINT“Press <space> to scroll”
- 1.05
- IF ASCN$<>ASC“&”THEN N$=“&”+N$
- 1.05
- =EVAL N$
- 1.05
- • Desktop on 1.2. (All the remaining H & T are based on material sent
- in by Bruce Roberts.) As an alternative to double clicking on <select>
- to open a file or run an application, try a single click on the adjust
- button — it has the same effect.
- 1.05
- The quick way to open a diary (or notepad), rather than opening the
- diary window first and then pressing <menu>, is to double click on the
- diary icon on the disk directory — the window opens automatically.
- 1.05
- You can now save diaries and notepads with whatever name you like and
- you can also click, or move with the cursor keys, and put text anywhere
- in the window.
- 1.05
- The following keys can now be used on diary and notepad:
- 1.05
- <insert> Insert single character
- 1.05
- <copy> Delete character to the right of
- 1.05
- the cursor
- 1.05
- <ctrl-insert> Insert a line above the cursor
- 1.05
- <ctrl-copy> Delete a line
- 1.05
- <shift-left/right> Move 4 characters sideways
- 1.05
- <ctrl-left/right> Move to the end of the line
- 1.05
- Notepads can be created from within View by saving a file (up to 100
- lines, 78 characters wide) and then doing a *SETTYPE <filename> &FEE.
- Existing notepads can be edited with View provided you use READ
- <filename> instead of LOADing it and WRITE <filename> instead of SAVEing
- it.
- 1.05
- • After using the desktop, the function keys do not produce the normal
- programmable strings or ASCII values. It seems that this is because
- Acorn have not stuck to their own rules (see ProgrammersÕ Reference
- Manual, page 488) because they do not call SWI Wimp_ CloseDown. The
- “fix” published elsewhere of typing *FX225,1 is fine if you only want to
- restore the strings to f0 - f9. To get f10 - f12 back, you need *FX221,1
- but the simplest thing seems to be to make sure that everything is back
- to its default setting by using a program, perhaps called QUIT, which
- you can run from the desktop instead of clicking on the exit icon. To
- set the default of all the combinations of <ctrl> and <shift> with all
- the function keys, you need:
- 1.05
- *FX225,1
- 1.05
- *FX226,&80
- 1.05
- *FX227,&90
- 1.05
- *FX228,0
- 1.05
- *FX221,1
- 1.05
- *FX222,&D0
- 1.05
- *FX223,&E0
- 1.05
- *FX224,&F0
- 1.05
- MODE 0
- 1.05
- *BASIC
- 1.05
- If you donÕt put in a MODE statement, youÕll find yourself typing
- invisibly! The *BASIC means you come out into BASIC but with no program
- in memory.
- 1.05
- As an alternative, you could miss out the call to BASIC and put:
- 1.05
- W%=GET
- 1.05
- *MOUNT
- 1.05
- *!BOOT
- 1.05
- The idea would be that you would click on this program, change to the
- disc you want to boot up, and press a key. You may want to include a
- prompt to the user to “replace disc and press space bar” or somesuch.
- The use of *!BOOT means that it doesnÕt matter if the boot file should
- be *EXECed or *RUN — either will be done by the *!BOOT according to the
- file type.
- 1.05
- • Avoiding the desktop. If you don’t want to go into the desktop every
- time you switch on or press <ctrl-break>, do a *CONFIGURE LANGUAGE 4 and
- press <ctrl-break>. When you want to go into the desktop, type *DESKTOP
- or *DES. for short. If you change your mind, *CON. LANG. 3 will bring
- you into desktop at switch on or LANG. 0 will start you in the super
- visor mode.
- 1.05
- • View boot file. Here is a more sophisticated boot file than the one
- we gave originally:
- 1.05
- *ECHO<22><3>
- 1.05
- *| selects mode 3
- 1.05
- *GOS
- 1.05
- *65ARTHUR
- 1.05
- *GO F800
- 1.05
- *LOAD VIEW 8000
- 1.05
- *GO 8000
- 1.05
- *ECHO<19><0><16><48><48><240>
- 1.05
- *| sets background colour
- 1.05
- *ECHO<19><1><16><240><240><208>
- 1.05
- *| sets foreground colour
- 1.05
- *ECHO<19><2><24><240><128><0>
- 1.05
- *| sets border/line colour
- 1.05
- SET FI
- 1.05
- *| sets Format and Insert modes
- 1.05
- NEW
- 1.05
- • Avoiding *MOUNT. To avoid typing *MOUNT each time you put a new disc
- in the drive, you can set an alias with, for example, *SET ALIAS$? MOUNT
- | M CAT so that when you type *?<return> it does the mount and the
- catalogue all in one.
- 1.05
- • Centronics GLP screendump. The *HardCopyMX nearly works because the
- printer is Epson-compatible-ish! All you need to do is issue, from
- BASIC, the following codes:
- 1.05
- VDU2,1,27,1,65,1,8,1,27,1,50,3
-
- • (1.2 OS) If you want to look at the desktop manager programs and
- perhaps modify them and run them from disk, the following information
- may be of use:
- 1.6
- The DESKTOP has its own filing system activated by *DESKFS. If you do a
- *CAT, you will get: DeskTopMgr
- 1.6
- DeskTopMgr2
- 1.6
- &.!palette
- 1.6
- Icons.Desktop
- 1.6
- Icons.Calculator
- 1.6
- Icons22.Desktop
- 1.6
- Icons22.Calculator
- 1.6
- You can then LOAD the DeskTopMgr2 program and LIST it. (DeskTopMgrÊis
- just the 5-line startup program that gets left in BASIC when you exit
- the desktop.)
- 1.6
- If you change back to *ADFS, you can then save the program. To copy the
- palette and/or the Icons, you have to use commands such as:
- 1.6
- *COPY DESKFS:I*.Desktop $.I*.Desktop
- 1.6
- (assuming you are in ADFS and have created a directory called Icons)
- 1.6
- To run the program from disk, you need the icon and palette files to be
- copied across then if you fancy tackling 76k of “crunched” BASIC
- program, you can try editing it!
- 1.6
- • If you are using the decrement or increment (+= or −=) in a BASIC
- program and you get a “Mistake” error on that line, the chances are that
- you have forgotten to initialise the variable. Try typing X=X+1:PRINT X
- and it will give the value 1 but if you type Y+=1 it will say “Mistake”.
- What it really should say is “Unknown or missing variable”, but still,
- good programmers won’t get the problem because we always remember to
- initialise all our variables, don’t we? (We do?)
- 1.6
- • Testing multi-sync output without a multi-sync monitor! If you are
- writing software and hoping to sell enough of it to be able to afford a
- multi-sync monitor(!) you have the problem of testing your software in
- modes 18 to 20. If you use *Configure MonitorType 1, modes 0 to 17 are
- still displayed as normal then when you select modes 18 to 20 and
- generate the screen output, you can use a screendump (such as Gerald
- Fitton’s minidump or *HardCopyFX) to look at what you’ve got. If you’re
- worried about damaging the monitor, switch it off before changing mode.
- 1.6
- • Using large printer buffers etc. If you’re using a buffer that’s
- larger than 64 kbytes, it’s no use trying to use ADVAL with a negative
- number (e.g. PRINT ADVAL(-4) for the printer buffer) − it only returns
- the least two significant bytes. Instead, use SYS “OS_Byte”, &80, &FC TO
- , X%, Y% : bytes_free%= X%+256*Y% where &FC is the − 4 value. (Actually,
- instead of working out that − 4 is the equivalent of &FC you can, it
- seems, be lazy and use − 4 in the SYS command. Ed.)
- 1.6
- • Easy loading of modules: To enable you to load the emulator and fast
- BASIC easily, you can create some library programs on your Welcome disc
- (or better still, a copy of your Welcome disc!). This is what you do for
- fast BASIC:
- 1.6
- *BUILD LIBRARY.FAST
- 1.6
- *FX225,1|M
- 1.6
- *KEY1 QUIT||M*MODULES.RAMBASIC
- 1.6
- ||M*KEY1||MCLS||MHELP||M
- 1.6
- *FX138,0,129
- 1.6
- <escape>
- 1.6
- and then change it into a BASIC program with
- 1.6
- *SETTYPE LIB*.FAST &FFB<return>.
- 1.6
- Note that there are double pad characters before each ‘M’ in order that
- when the program line is run, each double pad character is interpreted
- as a single pad character for the actual key definition.
- 1.6
- The bits after calling the module are optional. The first is to clear
- key1 again in case you press it accidentally. The second is to clear the
- screen and the third is to give a help message to show that you are
- actually in RAM_BASIC. (See below).
- 1.6
- Once this is set up, to get into fast BASIC all you do is type
- *FAST<return>.
- 1.6
- For the 6502 emulator, use the name LIB*.6502 and don’t put the HELP
- command in because that does not work on BASIC IV.
- 1.6
- • Tidying up after ArcWriter! You can do a similar thing to the above
- hint in order to tidy up after using ArcWriter.
- 1.6
- *BUILD LIBRARY.RESET
- 1.6
- *FX225,1|M
- 1.6
- *KEY1 QUIT||M*CONFIGURE FONTSIZE
- 1.6
- 2||M*RMREINIT FONTMANAGER||M
- 1.6
- *RMTIDY||M*BASIC||M
- 1.6
- *KEY1||MHELP||M
- 1.6
- *FX138,0,129
- 1.6
- <escape>
- 1.6
- Typing *RESET will do the tidy-up for you.
- 1.6
- • Identifying RAMBASIC. To get RAM_ BASIC to tell you that it actually
- IS the RAM version and not the ROM version, you can change a few bytes
- so that it prints out ‘RAM BBC BASIC’ instead of ‘ARM BBC BASIC’ on the
- startup and HELP messages. To do this, proceed as follows:
- 1.6
- *LOAD MO*.RAM* 20000
- 1.6
- ?&202B0=ASC“R”
- 1.6
- ?&202B1=ASC“A”
- 1.6
- ?&23F78=ASC“R”
- 1.6
- ?&23F79=ASC“A”
- 1.6
- *SAVE MO*.RAM_BASIC 20000 +E434
- 1.6
- *SETTYPE MO*.RA* &FFA
- 1.6
- • Reversing the CAPS lock. If you hold down the shift key when you put
- the CAPS lock light on, you will find that the shift key now has the
- opposite effect, i.e. letters typed without pressing shift come up as
- uppercase letters, but when you press the shift key you get lower case
- letters. This can be useful if you are programming and mostly work in
- upper case but with occasional use of lower case.
- 1.6
- • Displaying screens in different modes. If you have a screen that has
- been SCREENSAVE’d, you can display it in another mode. (e.g. Artisan
- screens in 256 colour modes!) Assuming you have configured spritesize to
- at least 11, proceed as follows:
- 1.6
- MODE 13
- 1.6
- *SLOAD filename \ NOT
- 1.6
- *SCREENLOAD
- 1.6
- *SCHOOSE screendump
- 1.6
- PLOT &ED,0,0
- 1.6
- You will note that the palette has changed and that it is a lower
- resolution, however, it will still be quite decent and you will have all
- those lovely colours to play around with!
- 1.6
- If you choose mode 15, you will get the same picture displayed in 256
- colours but squeezed into only half the screen width.
- 1.6
- If you want to change the colours you will have to load it into the
- sprite editor (SEDIT) and change the colours manually.
- 1.6
- • Using the View Series. You will find that after coming from the
- desktop, TAB does not work. The solution is to type *FX219,9.
- 1.6
- ViewProfessional works fine if you use the second processor version −
- the VP file on the 5.25“ disk − however it should be *LOAD’ed at 4000
- (not 8000) and called with *GO 4000. (See page 5, Archive 1.1)
- 1.6
- • Diary/Notepad problems. Beware: If you are printing something from
- notepad or diary, check that an active printer is on-line before
- starting to print otherwise the system may hang up and the only way out
- is to press <ctrl-break> − frustrating if you haven’t saved the text
- first!
- 1.6
- • Slower listings. I know this is obvious to ex-BBC users, but I’ve
- not seen mentioned anywhere the fact that holding <ctrl> and <shift>
- keys down together will stop the screen scrolling. Archimedes lists
- programs so quickly that even if you use <ctrl-N> to get a paged
- listing, you may well get two pages instead of one if you hesitate on
- pressing the shift key, so using <ctrl> and <shift> allows you to
- control the listing yourself.
- 1.6
- • File transfer between wordprocessors. If you have Wordwise Plus or
- View files and you want to import them into GraphicWriter, use *SETTYPE
- filename &FFF to ensure that GraphicWriter sees them as text files.
- (Actually it should already see Wordwise Plus files as text because of
- the save address that Wordwise Plus uses − check by doing *INFO *.) Then
- you can simply load the files into GraphicWriter using the file menu. To
- transfer the files back to View or Wordwise, you need to save them as
- ASCII files. This is done by opening the file menu then clicking on the
- word “TEXT” with the ADJUST button, typing in a filename and pressing
- <return>.
- 1.6
- (I tried to do the same sort of thing with ArcWriter but it kept
- crashing each time I tried to load a file, so I gave up!)
- 1.6
- • Smart ON ERROR routine. If your ON ERROR routine includes the
- following, you get the usual error message and then, if you press any
- key other than <escape> it will drop into the ARM BASIC editor at the
- offending line. So if you do not want to go into the editor, press
- <escape> instead.
- 1.6
- ON ERROR OFF
- 1.6
- PRINT REPORT$+“ at line ”;ERL
- 1.6
- dummy%=GET
- 1.6
- SYS 5,(“KEY0 EDIT ”+STR$(ERL)
- 1.6
- +“|M”)
- 1.6
- SYS 6,138,0,128
- 1.6
- END
- 1.6
- If you prefer to move into EDIT a few lines above the offending line,
- use STR$(ERL−50) or whatever.
- 1.6
- • Dual purpose boot files. It is quite possible to have a boot file
- that will work equally well from within the desktop or as a conventional
- boot file operated with <shift-break>. What you do is *BUILD the file as
- usual but then *settype <filename> &FFB which gives it a link to BASIC.
- If you then double-click on it in the desktop, it adds line numbers to
- it and runs it as a BASIC program. However, it will only work with
- <shift-break> if the machine is configured to start up in BASIC, not in
- the desktop (i.e. *CON. Language 4, not 3).
- 1.6
- • With the PC emulator you can get more space than Mark Sealey
- reckoned in his review last month by *unplugging various of the modules.
- On reader reckons to get almost 590,000 bytes free (= 576k).
- 1.6
- • Disabling Modules. Archive no.5 explains how *Unplug can be used to
- disable Modules, but this method needs a <ctrl-break>. An alternative is
- to use *RMKill and *RMTidy from the operating system *-prompt (not from
- BASIC), e.g.
- 1.6
- *RMKill FontManager
- 1.6
- *RMKill StringLib
- 1.6
- *RMKill Percussion
- 1.6
- *RMKill ARMBasicEditor
- 1.6
- *RMKill WindowManager
- 1.6
- *RMTidy
- 1.6
- This typically releases 96 Kbytes of memory on an A310 machine and
- doesn’t need a <ctrl-break>. It is particularly useful if you’re short
- of space in BASIC, Pascal or FORTRAN, etc and aren’t using fancy sound,
- the WIMP environment or the BASIC editor. Each module can be reinstated
- by using *RMReinit <Module name>, or all can be restarted by <ctrl-
- break>.
- 1.6
- • GW BASIC on the PC Emulator. There is an undocumented way to get
- back into the MS-DOS operating system after using GW BASIC. Try pressing
- function key f-11.
- 1.6
- • PC Emulator. Version 1.09 (which existing users can get by sending
- back their old disc plus £15 to Acorn) runs, amongst other things,
- Ability Plus, dBase 3 Plus, Kermit, Word Perfect, LTS NewsMaster (see
- separate review). (Can anyone add to this list?)
- 1.6
- • RS423É yet again! If you have the 1.2 operating system and if you
- have the version of the serial chip that is made by GTE (it’s the 28 pin
- IC at the back left of the pcb) and if you change over from using the
- CTS line at the Archimedes end to using the DSR line (i.e. link 1, 4 and
- 8 and join pin 6 to the RTS line from the other machine) then Acorn have
- a fix which you load in as a module. Send a blank disc to Customer
- Services to get a copy. The version they sent me didn’t work the first
- time I tried it with some data transfer software so I pressed <escape>
- and tried again and it worked perfectly at 19,200 baud. Then I tried
- again and it wouldn’t send anything, pressed <escape> and away it went!
- Still, when you do get it going it sends and receives at 19,200 baud in
- both directions without any data corruption. I left it running for a
- couple of hours and there was no corruption at all.
- 1.6
- • After the desktopÉ simpler than the list of FX commands that we gave
- last month is to call SYS“Wimp_CloseDown” (which is what Acorn should
- have put in their desktop program in the first place!!!) but if you
- don’t fancy trying to type that every time, getting upper and lower case
- exactly correct, you can create a one line BASIC program with 10
- SYS“Wimp_Close Down” and save it on your disk as $.library. undesk and
- then just type *undesk (or whatever abbreviation you can get away with)
- and all will be restored to normal.
- 1.6
- • Using the Seikosha 250X printer is a bit of a problem. When you plug
- it into the Archimedes, all power is lost. This seems to be because of
- the +5.0 volts on lines 18 and 36 of the printer connector − these are
- earthed at the Archimedes end and so have to be disconnected somehow.
- One reader, Adrian Moreton, has succeeded but it is too complicated to
- explain here. If you want the information, send us an s.a.e. and we’ll
- send you a photocopy of his letter and the excellent diagrams he has
- drawn.
- 1.6
- • ADFS wildcards. Had you gathered that ADFS will take * or #
- wildcards anywhere in a filename? On the BBC, you could only put them at
- the end of the filename. So, for example, if you’ve got PROGRAM1,
- PROGRAM2, PROGRAM3 etc you only need to say something like LOAD “PR*2”
- or even LOAD “*2” if none of the other files have numeric endings. That
- makes life much easier, doesn’t it?! (Thanks to Benjamin Finn for
- pointing that out. The next hint is his, too.)
- 1.6
- • Errors in library procedures. If an error occurs in a PROC or FN
- that is installed using LIBRARY or INSTALL, the correct error message is
- given but the line number quoted is the last number in the main program.
- Although we cannot get a line number pointer to the error, we can at
- least find out from which procedure in the main program the library
- routine was called when the error occurred.
- 1.6
- At the beginning of each definition of a PROC or FN you should put
- something like:
- 1.6
- DEF PROCdosomething
- 1.6
- LOCAL ERROR
- 1.6
- ON ERROR LOCAL PRINT REPORT$
- 1.6
- “ in PROCdosomething”:END
- 1.6
- .
- 1.6
- .
- 1.6
- ENDPROC
- 1.6
- • Help with Econet is offered by Michael Ryan of XOB, Balkeerie,
- Eassie, By Forfar, Angus, DD8 1SR. Michael says, “Here are some comments
- about Archimedes on Econet in response to comments in Archive 1.3, page
- 8.
- 1.6
- “RDFREE is part of the Econet filing system module and hence not a disc-
- based utility as with the BBC version. Issued with a user identity as
- parameter, it gives the total disc free space and that user’s allocated
- portion of it. Issued with no parameter, it returns the user’s own free
- space and the total free space.
- 1.6
- “Acorn are supplying a number of other utilities including SETFREE,
- SETSTAT, USERS, PROT and UNPROT, though they have not yet made it clear
- how they are to be distributed, so don’t hold your breath.
- 1.6
- “Though it is very unlikely that they will supply the more sophisticated
- utilities (VIEW, REMOTE, NOTIFY etc) all is not lost. XOB already have a
- wide range of utilities for the BBC/Master series and have already
- implemented several of them on the Archimedes. More details from us on
- 0307−84364.”
-
- • Most of the keys on the numeric pad have secondary functions if used
- with the Num Lock off. In BASIC, 1 gives copy, 2 and 3 are both cursor
- down, 4 is cursor left, 5 doesn’t seem to do anything, 6 is cursor
- right, 7 is ‘cursor home’ and 8 and 9 and cursor up. In View, the single
- cursor movements are 2, 4, 6 and 8 while 3 and 9 are page down and page
- up respectively.
-
- • GETfile and PUTfile on the MS-DOS emulator are difficult to use if
- you only have a single drive. However, if you configure a RAM disc with
- MS-DOS you can then copy MS-DOS files onto it and then form the ADFS
- files on the physical drive and vice versa to take ADFS files in to the
- MS-DOS file system.
- 1.7
- • Programs that work under the PC-emulator. I’ve had lots of informa
- tion about MS-DOS software that does work, but has anyone found any
- software that does NOT work under the PC-emulator?
- 1.7
- • With version 1.09 of the PC emulator, if you do the followingÉ
- 1.7
- *LOAD PC.Emulate 10000
- 1.7
- ?&137C8=0
- 1.7
- *SAVE PC.Emulate2 10000
- 1.7
- you will find that the memory isn’t cleared when you press the reset
- button.
- 1.7
- • One good book to help new MS-DOS’ers (sorry!) is “Quick Reference
- Guide to MS-DOS” by Van Wolverton, published by Microsoft Press,
- obtainable via Watford Electronics at £3.95. (ISBN 1-55615-025-3)
- 1.7
- • From various reports, it seems that CHKDSK does work properly though
- it has to be used with care. It can be used to repair the File Allo
- cation Table (FAT) and repair errors in directories. Files are not
- necessarily stored contiguously on an MS-DOS disc, so if part of a file
- is lost then CHKDSK can be used to convert lost chains to files (i.e.
- write to a disc directory). Generally, CHKDSK by itself is safe. CHKDSK
- *.* /V is usually safe, but CHKDSK *.* /F is dangerous if you don’t know
- what you are doing!
- 1.7
- • One reader says he has solved the problem of “To linefeed or not to
- linefeedÉ” by adding a single pole switch in parallel with the contact
- on the printer dip-switch that sets the auto-linefeed on and off,
- leaving the dip-switch in the open position, of course. Don’t forget
- though that most printers only look at the dip-switch settings at power-
- up, though some do so when you do a software reset with 27,64.
- 1.7
- • With Arc-Writer, to get it not to double space on a Panasonic
- printer, use the AW_PCedit program, select the RX80D and change the
- number of steps per 100 units vertically from 21600 to 600.
- 1.7
- • View 3 works under the emulator if you poke locations A8A1, A8A2 and
- A8A3 with &EA.
- 1.7
- • Acornsoft ISO Pascal, Comal, Prolog and LISP all work under the
- emulator says one reader.
- 1.7
- • Share Analyser (Synergy Software) works perfectly under the 6502
- emulator.
- 1.7
- • Four floppies on 1.2 OS. If you try *con. floppies 4, you will find
- that it tells you the number is too big, but if you use *FX162,135,4 and
- do a <ctrl-break>, you will finds that *STATUS tells you that you have
- four floppies.
- 1.7
- • Booting other drives. In contrast with the BBC micros, you can, on
- Archimedes, *MOUNT 1 and then <shift-break> to boot the disc in drive 1.
- 1.7
- • WIMP Manager. Be aware that the first time Wimp_poll is called, it
- clears the screen.
- 1.7
- • Fitting the backplane: It is an awkward job to fit the backplane
- because two plastic spacers are used into which self-tapping screws have
- to be inserted. This is best done in a vice to avoid stripping screw
- heads and/or sticking screwdrivers through your fingers!
- 1.7
- • ‘Unknown IRQ at &00000000’. If you get this error message (and
- possibly find that the machine hangs up on you) check whether your RS423
- lead is properly screened, if at all. If it is not screened, it seems to
- be able to pick up interference (remember the micro-wave problems
- mentioned in issue 5, page 8?) and this generates spurious interrupts.
- 1.7
- • More ideas on the black art of RS423 communication! Here is one
- reader’s recipe for succesful RS423 transfer, though it may not work for
- everyoneÉ Try using the ‘fix’ module (Archive 1.6 program disc) with
- pins 1,4,8 and 9 linked together and 6 (DSR) and 7 (RTS) as the control
- lines.
- 1.7
- • Running more than one BASIC program. If you have a BASIC program you
- want to run while you are working on another program in memory, you can
- program a couple of keys with:
- 1.7
- *KEY 4 P%=PAGE : PAGE=&30000
- 1.7
- : CHAIN “testprog”|M
- 1.7
- *KEY 5 PAGE=P% : OLD|M
- 1.7
- • System Delta Plus: If you have trouble loading newly formed
- databases and get “No Room” when you know there is plenty of room, add a
- .D to the filename when loading, i.e. type in the filename as, say,
- “RECORDS.D”.
- 1.7
- • Inter-Word: If you have come from the desktop, you will find that
- the tab key does not work. This can be corrected with *FX219,9.
- 1.7
- If you want the £ sign, you will find it is produced by the ` key (far
- top left key).
- 1.7
- If you want the ` signÉ tough! (The £ sign duplicates the “insert ruler”
- function!)
- 1.7
- • Stuck in a black hole? If you find yourself typing in black on
- black, try typing MODE MODE<return>. It allows you to type again, but
- maintains the mode you were in.
- 1.7
- • SystemDevs module. The redirection commands, some of which we said
- didn’t seem to work, are sensitive to spacing. The correct forms are as
- follows where the spaces are represented by bullets (•):
- 1.7
- *CAT•{•>•info• }
- 1.7
- Spools catalogue to file “info”
- 1.7
- *CAT•{•>>•info• }
- 1.7
- Adds catalogue to file “info”
- 1.7
- *BASIC•{•<•data• }•PROG
- 1.7
- Runs “PROG” and uses information in file “data” for input.
- 1.7
- • Using the Acorn ROM Podule: No links are available for the RAM
- sockets, although you can configure the sockets by software for 8k, 32k
- or 128k RAM chips. Using HM6264LP-15 ram in the sockets and configuring
- them as 8k does not immediately work. However if you configure them as
- 32k chip and apply an offset of &2000 when loading i.e.:
- 1.7
- *RMLoad <podule number>
- 1.7
- <socket> <filename> 2000
- 1.7
- then your data will load correctly. This is because the Chip Select (CS)
- on the 8k chips is on the pin Address 13 (pin 26) on the 32k and 128k.
- This causes the 8k chip to be mapped into 8-16k and 24-32k hence the
- offset of 8k. The inverted CS on pin 20 is common to all three devices.
- (Without configuring them as 32k, the operating system reports that the
- device is not big enough for an 8k offset.)
- 1.7
- • Concerning Acornsoft C and TWIN: ‘Concurrency’ (keeping text in one
- window and compiling a program in the other) does not work. The compiler
- (v1.5A) has a bug in it that prevents it from working. Acorn said that
- it used to work OK on the pre-release version! However, compiler output
- can be sent to a file called tmp.temp if the -spool option is used.
- 1.7
- It may be necessary to relocate TWIN in order to compile programs. My
- version of TWIN loaded at &60000 but needed to be relocated to &80000 to
- allow the compiler enough space. (See below.) If the compiler crashes,
- try increasing the SystemSize using *configure.
- 1.7
- The two compiler messages, ‘Fatal I/O error’ and ‘Binary output error’,
- simply mean that your disc is full!
- 1.7
- • More about TWIN. Twin is an editor which seems to have one or two
- hidden features; firstly it is a relocatable program, and consequently
- can be loaded anywhere where RAM exists (barring overwriting OS
- workspace etc.). I have created a version which I call LoTwin which
- loads at &10000; this leaves space for BASIC programs only 256 bytes
- fewer than are available on a BBC Master using Shadow RAM, and yet it
- allows me considerably more work space than the standard Twin.
- 1.7
- To create a version of Twin called ‘MYTWIN’ which loads and runs other
- than at the ‘normal’ address, perform the following actions:
- 1.7
- *DIR <dir’ry_containing _Twin>
- 1.7
- *LOAD TWIN <new_load_address>
- 1.7
- *EX
- 1.7
- *SAVE MYTWIN <new_load_
- 1.7
- address> +<size>
- 1.7
- <size> is obtained from the 3rd column of hex data after the ‘*EX’.
- 1.7
- Then, to invoke the new version, type
- 1.7
- *MYTWIN
- 1.7
- and it will run. Pressing <shift-f5> followed by <T> after entering
- MYTWIN will show the load address on the top line immediately to the
- left of the time.I have yet to see mentioned in print the ‘warm start’
- for TWIN. If something nasty happens and your Archimedes locks up just
- as you have spent a couple of hours typing in something using TWIN, and
- you have no option but to press <ctrl-break>, or even <ctrl-reset>, do
- not despair, simply type:
- 1.7
- *GO <twin_start_address> -WARM
- 1.7
- and you will find yourself back in TWIN exactly as you were when the
- ‘nasty’ happened, barring any corruption caused by the ‘nasty’. Don’t
- forget the ‘-’ preceding the “WARM’! I have found myself in this
- position after a momentary power cut, and although the warm start did
- not restore TWIN as a fully functional editor (due to corruption), it
- restored Twin’s ability to save text, so I saved what I had done, and
- was then able to reload Twin, and then reload my text.
- 1.7
- • Iso Pascal: Be warned before you buy Iso Pascal, it has NO support
- for Arthur − otherwise, says one reader, it is an excellent implementa
- tion. Also (in common with C) it comes with a very thin manual, so a
- copy of TWIN and a book about the language (see the mini-review on page
- 25) will be needed for most people.
- 1.7
- (More information about other languages was sent in, but this was all I
- could digest with my limited knowledge of languages other than BASIC.
- Would anyone be prepared to receive all the “other languages” informa
- tion and knock it up into a special section each month?)
- 1.7
- Using the Computer Concepts ROM Podule
- 1.7
- How many times have you had to press <ctrl-break> and muttered under
- your breath because you’ve lost your function key definitions? That need
- never happen again if you have Computer Concepts’s ROM podule with some
- battery-backed RAM on it. All you do is configure the system to start up
- in the RFS instead of the ADFS and also configure it to auto-boot. Then
- in the RFS, you put a boot file something like:
- 1.7
- REM > RFS:!BOOT
- 1.7
- *SET Run$Path ,ADFS:$.,RFS:$.%.
- 1.7
- *ADFS
- 1.7
- *FX255,8
- 1.7
- PRINT “Acorn ADFS”‘
- 1.7
- *KEY 0 These are
- 1.7
- *KEY 1 my favourite
- 1.7
- *KEY 2 key definitions
- 1.7
- *SET ALIAS$> Cat
- 1.7
- *SET ALIAS$? HELP etc
- 1.7
- *BASIC
- 1.7
- (You will notice that the Run$Path uses ‘$’ instead of ‘%’ as stated on
- page 28 of the Computer Concepts manual.)
- 1.7
- • To get the Inter series software to boot up with a simple call such
- as *ISHEET, copy 65Arthur into the RAM area using *COPY
- ADFS:Modules.65Arthur RFS:65Arthur and, providing you have set up the
- Run$Path as above, *ISHEET, *IWORD and *ICHART will automatically load
- the emulator and then the appropriate software.
- 1.7
- • Installing Wordwise Plus. If you copy the Archimedes version of
- Wordwise Plus from Computer Concepts’s disc (filename “WW+”) into the
- RFS calling it, say, WWIMAGE, you can modify the BASIC program “ISHEET”
- and save it as “WW+” so that, as above, you can just type *WW+ and it
- will auto-load the emulator and run the software. The modifications are
- to change the references to “ISIMAGE” at lines 130 and 270 into
- “WWIMAGE”.
- 1.7
- • If you want to modify any of the programs in a ROM, all you do is
- either LOAD it, edit it and SAVE it or, if you have the modified version
- on disc, just *COPY it. If you tell it to SAVE a file with a name that
- exists in ROM it gives the ram version precedence over the ROM version.
- 1.7
- To find out whether a particular file is in ROM or RAM, use the *INFO
- <filename> command. If it comes up with a “*” before the final figure of
- the information, the file is in the RAM area. To get the ROM version
- back, you either have to do a <ctrl-break> or type *RMREINIT RFS
- <return> because *delete filename removes all trace of it so that even
- the ROM version is inaccessible.
- 1.7
- Thanks to Adrian Look for all the following hints and tips.
- 1.7
- • X-SWI’s. When using SWI’s if you put an X before the name then the
- SYS call from BASIC will not generate an error. For example:
- 1.7
- SYS “XOS_CLI”,block
- 1.7
- • Modes & drawing speed. The VIDC receives the video data down the
- data bus lines of the ARM processor. While this is happening the RISC
- chip cannot perform any processing. This means that the screen modes
- using higher memory will be slower. Try timing a FOR-NEXT loop of
- 1,000,000! So, if speed is of the essence, it may be better to go into
- mode 0, do the calculations and save them in an array and then go into
- mode whatever to plot the results.
- 1.7
- However, there is a compensating factor. The lower memory modes use one
- byte to represent several pixels, thus addressing pixels requires extra
- calculation − whereas the higher memory modes use only one byte to
- represent a pixel so addressing pixels is much quicker. This means that
- graphics will be quicker in higher modes.
- 1.7
- Mode F/N loop Draw Mem. Colours
- 1.7
- (secs) (secs) (k)
- 1.7
- 0 14.9 51 20 2
- 1.7
- 1 14.9 38 20 4
- 1.7
- 2 15.6 34 40 16
- 1.7
- 3 15.6 − 40 Text
- 1.7
- 4 14.9 38 20 2
- 1.7
- 5 14.9 32 20 4
- 1.7
- 6 14.9 − 20 Text
- 1.7
- 7 15.6 − 80 T-Text
- 1.7
- 8 15.6 54 40 4
- 1.7
- 9 15.6 40 40 16
- 1.7
- 10 17.1 39 80 256
- 1.7
- 11 15.6 − 40 Text
- 1.7
- 12 17.1 61 80 16
- 1.7
- 13 17.1 45 80 256
- 1.7
- 14 17.1 − 80 Text
- 1.7
- 15 21.3 79 160 256
- 1.7
- 16 19.6 − 132 Text
- 1.7
- 17 19.5 − 132 Text
- 1.7
- 18 15.4 70 40 2
- 1.7
- 19 16.9 77 80 4
- 1.7
- 20 21.0 98 160 16
- 1.7
- • OS_Pretty Print. Have you ever wondered how the operating system
- manages to display all its messages without any of the words getting
- split at the end of a screen line, no matter what mode it is in? Well,
- the answer is ‘OS_ PrettyPrint’.
- 1.7
- If you print all your strings using this call it will stop any words
- going over the end-of-line boundary. This call recognises the following
- control characters in a special way:
- 1.7
- − CR (CHR$(13)) causes not just a carriage return but also a newline.
- 1.7
- − TAB (CHR$(9)) causes a tabulation to the next multiple of eight
- columns.
- 1.7
- − CHR$(31) is a ‘pad character’, that is, the procedure will print a
- space when this code occurs but it will not break the string up at this
- point.
- 1.7
- Example:
- 1.7
- A$=“Hello my name is...”
- 1.7
- SYS “OS_PrettyPrint”,A$
- 1.7
- • The QUICK option When you use the (Q)uick option in the *COPY and
- *BACKUP commands, the OS will use all available memory. This means that
- if you are in high memory screen modes then you will have less memory to
- use. So if you want even quicker *COPYing or *BACKUPs then try it in a
- mode which uses less memory.
- 1.7
- • Run$Path and File$Path. The FileSwitch uses two system variables
- called Run$Path and File$Path. You can see their values by typing
- either:
- 1.7
- *SHOW File$Path <return> and/or
- 1.7
- *SHOW Run$Path <return>
- 1.7
- You will probably get the following results:
- 1.7
- File$Path : type String, value :
- 1.7
- Run$Path : type String, value : ,%.
- 1.7
- These are the default settings. The values stored in the File$Path and
- Run$Path variables are actually a list of directory filenames separated
- by commas and terminated with dots.
- 1.7
- When the FileSwitch is told to read a file it will look at File$Path
- variable and search for the file in each of the directories listed until
- it finds a match. Similarly the FileSwitch will do the same when it is
- told to execute a file, only it will use the Run$Path variable as the
- list of directories. For example:
- 1.7
- *SET File$Path RFS:%.,,%.
- 1.7
- This would cause the FileSwitch to search for the file first in the RFS
- filing system’s library directory, then in the current filing system’s
- current directory (hence the “,,” which means don’t add anything to the
- filename as entered), and finally in the current filing system’s library
- directory.
- 1.7
- Here is a list of all the possible directory prefixes (although you can
- actually specify any directory by name − wildcards may be used):
- 1.7
- * − all
- 1.7
- $ − root
- 1.7
- & − user
- 1.7
- @ − current
- 1.7
- ^ − parent
- 1.7
- % − library
- 1.7
- } − previous
- 1.7
- • Flushing the Mouse. You may have noticed that the mouse has a buffer
- of its own. This means that the Arc stores all the mouse movements and
- clicks just as it stores the keyboard entries. How many of you play
- around with the mouse when a program is ‘thinking’ or waiting for a
- screen to load? This will leave a whole load of mouse positions and
- clicks in the buffer, so any subsequent MOUSE X,Y,B readings will not
- reflect the true position of the mouse but the positions stored in the
- buffer!!! So how do you clear the buffer? To flush all the buffers,
- type:
- 1.7
- *FX 15 <return>
- 1.7
- to flush just the mouse buffer, type:
- 1.7
- *FX 21,9 <return>
- 1.7
- • Local DATA statements. (Based on an idea sent in by C.R.Fitch) In
- answer to the query last month, it is possible to have DATA statements
- in a program that does not rely on line numbers. What you can do is to
- use the error handler to pin-point a line number just before the local
- data statements. For every data set you want to access, just use the
- following format:
- 1.7
- DEFPROCdata_set
- 1.7
- LOCAL ERROR
- 1.7
- ON ERROR LOCAL RESTORE ERL
- 1.7
- IF ERL=0 THEN ERROR 1,“get line
- 1.7
- number“
- 1.7
- RESTORE ERROR
- 1.7
- DATA 1,2,3,4,5 : REM put your
- 1.7
- own data here
- 1.7
- ENDPROC
- 1.7
- Then if you want to use the data set, just call the procedure, as for
- example:
- 1.7
- PROCdata_set
- 1.7
- FOR i=1 TO 5
- 1.7
- READ data:PRINT data
- 1.7
- NEXT i
- 1.7
- The procedure leaves everything exactly as it was (except the data
- pointer) so it does not affect the program at all. The only snag is that
- we don’t know where the old data pointer was so we can’t continue
- reading data from where we left off! Any ideas??
- 1.7
- (The remaining information in this section is about using the MS-DOS
- emulator. More information than this was sent in, but this was all I
- could digest with my limited knowledge of MS-DOS. Would anyone be
- prepared to receive all such information and knock it up into a special
- MS-DOS section each month?)
- 1.7
-
- • Colour TV output for Archimedes? If you haven’t got a colour monitor
- and want to use a TV to look at the output from the Archimedes in
- colour, you can feed the signal from the video output into the ‘video
- in’ on a video recorder (always assuming you’ve got one!) and connect
- the ‘RF out’ from the recorder to the TV.
- 1.08
- • Drive lights on external 5.25“ drives. One reader suggested that to
- avoid the external drive light coming on when I accessed the interal
- drive(s) I should remove all links except DS1 (I use DS2 to make it
- drive2), TO, RR and MS. I followed his advice and it seems to be OK
- now.
- 1.08
- • 400 or 300? If a piece of software wants to find out if it is running
- in a 300 series machine or a 400 series it can read the MEMC to find the
- size of page being used, thus:
- 1.08
- program segment missing
- 1.08
- • More buzzing. One reader noticed that the buzzing from the speaker
- gets worse when you upgrade from a 305 to a 310. Other readers have
- found that the buzz gets to an intolerable level with certain software
- such as ArcWriter. In any case, this is now recognised by Acorn as a
- field change, so your local dealer should be able to sort it out for
- you. If your local dealer is not within easy reach then the “capacitor
- fix” mentioned in issue 3, page 7, is easy enough to do as long as you
- are reasonably competent at soldering.
- 1.08
-
- 1.08
- • Printer Acknowledge Line. The IOC (Input Output Controller) has a
- printer acknowledge line which can be read from the ARM supervisor mode.
- However, it is not advisable to ‘play around’ in this area, unless you
- know what you are doing, because some locations are read only and
- attempting to write to them could damage your IOC chip. Here is an
- example program that reads the printer acknowledge line.
- 1.08
- program segment missing
- 1.08
- • *TypeFile Command. One reader tried to define an alias which types
- out a file on the printer and then switches the printer off again, but
- he found that it was easier said than done. I set Adrian Look onto it
- and he has managed to find a way of doing it (albeit rather tortuous!):
- 1.08
- program segment missing
- 1.08
- then to print out the file, you do a *TypeFile<filename>. The <60> and
- <62> are the ASCII codes for “<‘ and “>”.
- 1.08
- It sounds a bit long-winded, but what you are trying to do is generate
- ASCII codes <2> and <3> to switch the printer on and off again. When
- you do a *SHOW, it gives the definition of TypeFile as ECHO |<2>|M TYPE
- %0|M ECHO |<3>|M.
- 1.08
- • “What’s the time, Arthur??” − If you wanted to change the prompt
- which Arthur gives, you could try, for example:
- 1.08
- *Set CLI$PROMPT >>>
- 1.08
- and you would get a question mark instead of the star prompt. Then, if
- you want Arthur to tell you time at each prompt, use:
- 1.08
- *SETMACRO CLI$PROMPT <SYS$TIME>*
- 1.08
- This prints out the time and then prints the star prompt. The reason
- you use SETMACRO rather than just SET is that it needs to be a variable
- which is up-dated each time the command is used. If you don’t like the
- seconds figure to be included, try:
- 1.08
- <SYS$TIME><127><127><127>*
- 1.08
- This prints out the time but then generates three delete characters
- which remove the seconds figures and the colon.
-
- • View B3.0. Following on from the hint about View B3.0, John Phelan
- writes th• “More articles about the basics, please”, said a number of
- folk at the Micro User Show. WeÕve had something on using ADFS and are
- starting assembler for beginners but can anyone say specifically what
- they want information on and can anyone offer to write any “basic”
- articles, please? In particularÉ
- 1.09
- • Article on ARMBE. We really do need someone to write a very
- practical guide to using the ARM BASIC Editor. For example, IÕve only
- just realised that <insert> toggles between insert and over-write mode
- and so you donÕt have to go through the preferences menu. I suspect a
- lot of people are not using ARMBE simply because they are familiar with
- BASICÕs own line editor and havenÕt got time to learn ARMBE even though
- it would save them time in the long run. Please write to us if you would
- like to have a go at this. Thanks.
- 1.09
- • BASIC V utility library. If you have worked out some neat utilities
- like the one in Hints & Tips about aligning decimal points, why not send
- them in to us. Clifford Hoggarth has offered to edit the section, so
- either send your contributions to us or direct to him at 20 Pinfold
- Drive, Eccleston Mere, St Helens, WA10 5BT.
- 1.09
- • Education articles. IÕm getting requests for articles relevant to
- education, but no-one is offering such articles. Can anyone help?!
- 1.09
- • Hard Disc users. One reader, who has a 440 on order, wants to know
- if there are any doÕs and donÕtÕs with a hard disc. Are there any hard-
- disc users who want to comment?
- 1.09
- • View B3.0. Following on from the hint about View B3.0, John Phelan
- writes that there is still a problem with the pound key. On the
- Archimedes, this key returns ASCII 163. Is this redefinable?
- 1.09
- • Calculating ¹ and e. Brian Cowan asks if anyone knows the way that
- pi and/or e may be calculated digit by digit on a computer. Presum-ably
- they must be all integer algorithms(?)
- 1.09
- • Taxan KP-810 on ArcWriter. Has anyone worked out how to get a
- printer driver working for this combination? Drop a line to E. Clinks
- cales, 68 Wyvis Drive, Nairn, IV12 4TP.
- 1.09
- • Video-titling. Is there any software, says M Davies of Cardigan, for
- video-titling? Wild Vision do the hardware for Genlock and Video
- Overlay, but where is the software?
- 1.09
- Also, he asks, is there any software, preferably ROM based, to give NLQ
- print on his Epson RX80 and also desktop publishing?
- 1.09
- Help Answers
- 1.09
- • Label printer for cassette tapesÉ Try the June issue of Micro User,
- page 39.
- 1.09
-
- 1.09
- • View B3.0. In order to get View B3.0 working properly under the 6502
- emulator, as well as poking the three bytes at &A8A1 to &EA you have to
- poke &80C2 — 4 to &EA otherwise, the emulator tries to run it as a
- second processor ROM image — without any success. With this patch, the
- address space from &B328 to &BFFF is effectively free for patching.
- Perhaps some enterprising programmer could use this space for extra
- routines — e.g. a resident printer-driver.
- 1.09
- • Special characters. If you want to generate special characters on-
- screen, try pressing <ctrl-shift-alt> and then one of the ordinary keys
- and you will find that you can get all sorts of alternative characters
- such as © and ¨ and the half, quarter and three-quarter signs (which I
- havenÕt even got on the Apple Mac!). What is more, if you are using Arc-
- Writer, it will actually print some of the symbols, such as the
- fractions, on the printer!
- 1.09
- • PSU for external 5.25“ drives. If you have an external 5.25” disc
- drive that does not have its own power supply, you can take the power
- from the power supply for the hard disc but you will need a special
- cable and connector. Those who have bought interfaces from Dudley Micro
- Supplies might be able to get help from them. (Or try the ArcDFS
- interface mentioned in Hardware & Software Available section.)
- 1.09
- • Aligning decimal points. If you are trying to print out various
- figures and want the decimal points to line up above one another, you
- can use the “fixed format”. (See the explanation of the @% variable
- under the section in the User Guide about the PRINT command.) However,
- the fixed format prints out trailing zeros, e.g. it prints 234.0000
- instead of 234.
- 1.09
- The bad news: One reader wanted to avoid this and so was trying to write
- a BASIC routine to do the aligning and discovered some nasties (presum
- ably due to rounding errors) that gave the value of LOG100 as 2 but
- INT(LOG100) as 1! Also he found that LEN(STR$3.3) was given as 3, but
- LEN(STR$4.3) was given as 11!
- 1.09
- The good news: You can do a STR$, use INSTR to find the position of the
- decimal point and then use PRINT TAB( to position it correctly as in the
- following example. (Thanks, APL!)
- 1.09
- 10 REM >$.AlignDP
- 1.09
- 20
- 1.09
- 30 REM ***************************
- 1.09
- 40 REM * Aligning your decimals *
- 1.09
- 50 REM * by Adrian Philip Look *
- 1.09
- 60 REM * 28th April 1988 *
- 1.09
- 70 REM ***************************
- 1.09
- 80
- 1.09
- 90 REPEAT
- 1.09
- 100 random=RND(10000)-RND(1)*(RND
- 1.09
- (1)<.7)
- 1.09
- 110 PROCalign(20,random)
- 1.09
- 120 UNTIL FALSE
- 1.09
- 130 END
- 1.09
- 140
- 1.09
- 150 DEFPROCalign(x,number)
- 1.09
- :REM x = position of DP
- 1.09
- 160 number$=STR$(number)
- 1.09
- 170 dot=INSTR(number$,“.”)
- 1.09
- 180 IF dot=0 dot=LEN(number$)+1
- 1.09
- :REM i.e. no DP
- 1.09
- 190 IF dot=1 dot=0:REM leads with DP
- 1.09
- 200 PRINT TAB(x-dot);number
- 1.09
- :REM beware of (x-dot)<0
- 1.09
- 210 ENDPROC
- 1.09
- STOP PRESS. The original enquirer about this, Peter Trigg, has just come
- back with:
- 1.09
- DEFPROCalign(x%,number)
- 1.09
- :REM x% = position of DP
- 1.09
- LOCAL length%
- 1.09
- length%=LEN(STR$(INT(number)))
- 1.09
- PRINT TAB(x%-length%);number
- 1.09
- ENDPROC
- 1.09
- This is somewhat neater and it seems to work OK. (This just emphasises
- the need for sharing ideas — which is why we are setting up our “BASIC
- utilities” section — see Help!!! section.)
- 1.09
- • Music Editor. If you have a number of tunes that were prepared using
- the Music Editor on the 0.2 or 0.3 Welcome discs. You will probably find
- that all the voices are wrong — usually that the main tune was being
- played on the percussion! The reason is that the Music Editor refers to
- the voices by number only, so if the modules are in a different order,
- the voices are likewise in a different order. It is however possible to
- change the order of the modules by *RMKILLing the one which is higher in
- the *ROMMODULES list then doing a *RMTIDY and then *RMREINITing the
- module which you had just killed.
- 1.09
- • Beware &36D! Some BBC software (Apollo Mission for example) pokes
- !877=0 (or !&36D=0). If you transfer this to the Archimedes you will
- find that the system locks up and neither <ctrl-break> nor <reset> has
- any effect. Even switching off is ineffective. The only way out is an
- <R>-power-up. (Do it twice to restore the correct monitor-type setting.)
- 1.09
- • File copying on a single drive. Are you having difficulty copying
- files from one disk to another using just one disk drive? Is it that
- when using the *COPY command with the Prompt option, the system prompts
- for insertion of the destination disk but never recognises it? If so,
- issue the command *NODIR first. The system will then read the disk
- directory every time it attempts to access a disk rather than storing
- the directory in memory so that disks no longer need *MOUNTing. It is
- possible to make the change permanent by doing *Configure NODIR.
- 1.09
- • Boot files that work from desktop or with <shift-break> — set *OPT
- 4,2 (Run) and create a BASIC program called !BOOT. You can then <shift-
- break> if configured as language 3 or 4 (desktop or BASIC) or double
- click the !boot icon from desktop.
- 1.09
- If necessary the !BOOT file can contain a line such as: 10*EXEC !BOOT1
- 1.09
- !BOOT1 contains tasks such as loading modules that need to be done from
- supervisor mode.
- 1.09
- • To run Master software, use *Alphabet Master and *Keyboard Master.
- 1.09
- • *TypeFile again. After the ideas given last month, I knew there
- should be an easier wayÉ Clifford Hoggarth has come up with:
- 1.09
- *Alias$TypeFile Echo ||B|M Type %0|M Echo ||C|M
- 1.09
- The point is that on first interpretation, || is turned into | so that
- it become Echo |B which gives the ASCII 2 (ctrl-B) to turn on the
- printer and Echo |C to do the reverse.
- 1.09
- • System Delta Plus — The section in the manual on printer control
- codes is not very clear. The following points may make it clearer: (1)
- Clicking on <menu> on the printer control icon brings up a sub-menu
- giving options for Bold, Compressed or Reset. (2) To select multiple
- escape sequences, click <select> on the printer control icon, select the
- Escape icon and enter the first code in the sequence, then press
- <return>, enter the second code and again press <return>. Repeat this if
- necessary and click on the OK icon when you have finished. E.g. to get
- NLQ on an Epson , you want ESC120,1. So use: <select> Escape icon, type
- 120, press <return>, type 1, press <return>, <select> OK icon.
- 1.09
- One limitation of the System Delta Plus package, as it stands, is that
- you can only create four numeric total fields when producing a “List”.
- The solution, according to Minerva Systems will be to purchase their
- “Reporter” software — when it becomes available!
- 1.09
- • Taxan Kaga printer (or the Canon equiv-alent) — there is a fairly
- simple way of being able to switch the auto-line feed on and off, to
- avoid problems with software that may or may not require the printer to
- auto-line feed.
- 1.09
- All you do is to place a switch between two pins of the printer
- connector. The pins to connect are pin 14 (auto-line feed) and any GND
- line. When they are connected an auto-line is not performed.
- 1.09
- • Ambiguous *-commands. If you have two modules loaded into the
- Archimedes that use the same *-command name, you can call the command
- required by: *<module name>: <command> <....> So, for example, if you
- had two modules, ÔUtilityÕ and ÔToolkitÕ both of which have a CATALL
- command, you can use either *Utility:CATALL or *Toolkit:CATALL to
- differentiate between them.
- 1.09
-
- • BASIC Editor. If you type “EDIT.” instead of just “EDIT”, it gets
- you back into the editor at the same place you left it. This can be very
- useful when editing long programs. It even seems to work if you load and
- save other programs in the interim as long as you get the original
- program back into memory. Also, you can say EDIT Fred and it will take
- you to the first occurrence of the word “Fred” in the file. So, with
- judicious use of REM statements, you can jump into the program at just
- the right place every time. If you want to find DEFPROCfred, EDIT fred
- will probably bring you to PROCfred rather than the definition itself,
- but REM !FRED above the top of the procedure would allow you to type
- EDIT !FRED (note, all uppercase, which is easier to type) to drop you
- straight to the desired place in the program.
- 1.10
- • Artisan — fast load and save. If you have typed in the Fastload/Save
- module from the March issue of Archive, *COPY FastRm onto the Artisan
- disk and then LOAD “ART3”, list line 270 and add *RMLOAD FastRm|M and
- then re-save it. Now LOAD “ART5” change line 2540 to OSCLI“FastLoad ”+f$
- and line 2620 to OSCLI”FastSave “+f$. Then re-save it. You now have a
- new and improved disc facility for Artisan.
- 1.10
- • 305, 310, 410 or 440? Following on from the hint in the May issue
- (page 7) itÕs all very well to know what the page size is, 8k or 32k,
- but to differentiate between a 305 and a 310 or between a 410 and a 440,
- you need to know how much memory is available. One way of doing this is
- to set up a local error trap and do a *Configure Spritesize 128. If the
- machine has 1 Mbyte or less it will generate a “Configure parameter too
- big” error. If it still generates an error when you use *Configure
- Spritesize 64 then the software knows it is running in a 305. We have
- not had chance to check this on a 305 or a 410, so please will someone
- let us know if it does not work.
- 1.10
- • System DeltaPlus. If you want to use two drives, issue the following
- two commands from the card index:
- 1.10
- *dir :1
- 1.10
- *set Delta$WPPrefix :0.$
- 1.10
- Then donÕt specify the drive number in the data file name.
- 1.10
- • View 3 & Viewstore 1.1. Various folk are still having problems with
- these. If so, try the following as suggested by Sean Kelly — thanks.
- 1.10
- Viewstore 1.1. Locations &ABE2, &ABE3 and &ABE4 should all be set to the
- value &EA.
- 1.10
- View 3. Set locations &A8D6, &A8D7 and &A8D8 to the value &EA. Also,
- there are four places where you get LDA#&82, JSR Osbyte (i.e. &A9, &82,
- &20, &F4, &FF). This is used to check for the second processor on the
- BBC. So to fool it, you have to change each of these to: LDX#&FF,
- LDY#&FF, NOP. You can either do this by poking &A2, &FF, &A0, &FF, &EA
- into each of the sets of locations: &8834 to &8838, &88D8 to &88DC,
- &895C to &8960 and &AF8D to &AF91. (I checked these locations against
- the B3.0 version in the Master 128Õs and it bore no resemblance to it.
- Apparently it refers to the A3.0 version. Ed.)
- 1.10
- • Improved sound. If you have the colour monitor that comes with the
- Archimedes, you can use the Audio Input at the back of the monitor (a
- phono socket) to take a signal from the Headphones output (3.5 mm stereo
- jack) from the Archimedes. Just use one of the channels or combine them
- with 100R resistors. (If youÕre not quite sure how to do this, weÕll try
- to give more details next month.) This give a much better sound and
- provides you with a volume control.
- 1.10
- Next two hints are from Peter KigginsÉ
- 1.10
- • When using a SWI from BASIC which either takes or returns a string,
- it is not necessary to use pointers to strings. The SYS command knows
- that a pointer has been returned by the SWI and copies the relevant text
- into the string. For example, instead of
- 1.10
- $TxtPtr%=Number$
- 1.10
- SYS“OS_ReadUnsigned”,FromBase%,TextPtr% TO ,,Decimal%
- 1.10
- you can use the more readable and easier
- 1.10
- SYS“OS_ReadUnsigned”,FromBase%,Number$ TO ,,Decimal%
- 1.10
- And to read the command line which started the program, all that’s
- required is
- 1.10
- SYS “OS_GetEnv” TO Command_line$
- 1.10
- • BASIC commands TWIN and TWINO can be used without Acorn’s (editor)
- TWIN. How? When TWIN is executed, BASIC first converts the current
- program from internal tokenised format to plain text format; then it
- calls TWIN with the location of the text as a command line string. So
- all that is required is a program called TWIN which reads the command
- line and saves the relevant chunk of memory:-
- 1.10
- 10 REM >twin
- 1.10
- 20 REM*** fails with very short pieces of text ***
- 1.10
- 30 SYS “OS_GetEnv” TO command_line$
- 1.10
- 40 posat%=INSTR(command_line$,“@”)
- 1.10
- 50 poscomma%=INSTR(command_line$,“,”,posat%)
- 1.10
- 60 possemic%=INSTR(command_line$,“;”,poscomma%)
- 1.10
- 70 start$=“&”+MID$(command_line$,posat%+1,poscomma%-(posat%+1))
- 1.10
- 80 finish$=“&”+MID$(command_line$,poscomma%+1,possemic%-(poscomma%+1))
- 1.10
- 90 INPUT“Enter file name: ” file$
- 1.10
- 100 OSCLI(“save ”+file$+“ ”+start$+“ ”+finish$)
- 1.10
- 110 OSCLI(“settype ”+file$+“ &FFF”)
- 1.10
- The point of all this is that the BASIC Editor can now be used to
- produce text files — for wordprocessing, compiling, etc.
- 1.10
- • Auto-Booting — some of the commercial auto-boot programs don’t take
- into account the filing system! This can be very annoying if you have a
- ROM podule and your system is set to start up in the RFS. The answer is
- (i) the software developers should produce proper auto-boot programs; or
- (ii) if you already have bought a program — put *CON.FILE.ADFS in auto-
- boot program!
- 1.10
- Hard Disc Auto-Booting — some readers are lucky enough to have hard
- discs. However, life with a hard disc is not all a bed of roses! Having
- copied your application programs to the hard disc, you run into problems
- with the auto-booting routines. Here is a one of many possible solu
- tions. Indeed this program could be used for those of us with floppies,
- who have more than one application on a disc.
- 1.10
- 10 REM >$.!BOOT
- 1.10
- 20 REM **************************
- 1.10
- 30 REM * Multiple Auto-Booting *
- 1.10
- 40 REM * written by Adrian Look *
- 1.10
- 50 REM * 22nd June 1988 *
- 1.10
- 60 REM **************************
- 1.10
- 70
- 1.10
- 80 SYS “OS_Byte”,161,16 TO ,,misc_flags
- 1.10
- 90 auto_boot=(misc_flags AND %10000)
- 1.10
- 100 file$=“boot”
- 1.10
- 110 file=OPENIN(file$):CLOSE #file
- 1.10
- 120 IF file=0 THEN PROCmenu
- 1.10
- 130 file=OPENIN(file$)
- 1.10
- 140 INPUT #file,boot$
- 1.10
- 150 CLOSE #file
- 1.10
- 160 IF auto_boot THEN OSCLI(“REMOVE ”+file$)
- 1.10
- 170 OSCLI(“RUN ”+file$)
- 1.10
- 180 END
- 1.10
- 190
- 1.10
- 200 DEFPROCmenu
- 1.10
- 210 REM **** your own code ****
- 1.10
- 220 REM
- 1.10
- 230 REM should exit with file$
- 1.10
- 240 REM containing the filename
- 1.10
- 250 REM of the program to be run.
- 1.10
- 260 REM
- 1.10
- 270 REM e.g. PRINT #file,filename$
- 1.10
- 280 ENDPROC
- 1.10
- The program checks whether a file (file$) is on the disk. If it is, then
- the program reads the filename contained in file$ and runs it! Other
- wise, the program should create file$ — as indicated.
- 1.10
- This method also allows you to write library programs which will: create
- file$ and then run the boot program. Thus by running these library files
- you can also initiate your application programs — without the need for a
- menu!
- 1.10
- • Quazer Fix. If you are using Quasar 1.40, here is a cheat, (for
- those who like such things!) which allows you to keep going a bit
- longer. Firstly, *LOAD QuazCode 9000 and then rename Quazcode as, say,
- OldCode. Now if you want to set the number of lives, you need to change
- location &3D058. It should currently contain 2, so to change the number
- of lives to, say 10, put ?&3D058=10. Now if you want to avoid being
- killed when you collide, change the contents of location &3D90B from &E2
- to &F2 by puting ?&3D90B=&F2. Finally, *SAVE QuazCode 9000 +36520.
- 1.10
- •Passwords if you want them. Quazer Passwords: 2 Lizards, 3 Spiders, 4
- Pedantic, 5 Analysis, 6 Larkin, 7 Company, 8 Manual,9 Trading
- 1.10
- Hoverbod passwords: 2 Minervas, 3 SirBarry, 4 ZotyBlob, 5 Flumpies, 6
- Squidgee, 7 Wobblies, 8 Posskett
- 1.10
-
- 1.10
- The following Hints & Tips were sent in by Mike Harrison (of Watford
- Digitiser fame). HeÕs also sent us various other bits of information
- which appear elsewhere in this issue and the next issue. Many thanks
- Mike.
- 1.10
- Writing modules
- 1.10
- (Ref. issue 5, page 45) SWIs in modules must always use the ‘X’ version
- of the SWI and, where appropriate, check for an error and exit,
- preserving the value of r0 returned by the SWI (i.e. don’t restore the
- old value of R0 if it had been saved). e.g.
- 1.10
- .a_module_routine
- 1.10
- STMFD R13!,{r0-2 ,14} \or however many registers you need to save
- 1.10
- SWI “XOS_SomethingOrOther”
- 1.10
- STRVS R0,[R13] \overwrite old r0 with error pointer
- 1.10
- LDMVSFD R13!,{r0-2 ,PC}
- 1.10
- \ the last 2 statements could alternatively have been :
- 1.10
- \
- 1.10
- \ ADDVS R13,R13,#4 : LDMVSFD R13!,{r1-2 ,PC}
- 1.10
- For short routines, or where several SWIs are used, the following is
- neater..
- 1.10
- .a_short_routine
- 1.10
- STMFD R13!,{r0-5 ,14}
- 1.10
- SWI “XOS_SomeSwi”
- 1.10
- SWIVC “XOS_SomethingElse”
- 1.10
- SWIVC “XOS_YetAnotherSwi”
- 1.10
- STRVS R0,[R13]
- 1.10
- LDMFD R13!,{r0-5 ,PC}
- 1.10
- In this example, all code after first SWI should be conditional on V
- clear, so if any SWI gives an error, the code will ‘drop through’ to the
- end.
- 1.10
- Remember that some SWIs may return errors you don’t expect — e.g.
- OS_WriteC could return an error when output is *Spooled, setting the
- screen mode could give ‘Bad Mode’ etc. — some thought is required to
- ensure that module code will be reliable in all environments.
- 1.10
- When setting up offsets in headers and command tables, it is much easier
- to specify them when using offset assembly (OPT 4/6/7) — set O% to the
- code buffer, and P% to 0. Offsets can then be included directly with
- EQUD (e.g. EQUD moduletitle). Warning — if you are still using Basic
- 1.00, there is a bug in ALIGN when using offset assembly. Version 1.02
- is OK.
- 1.10
- The following assembler macro is useful when building keyword tables in
- modules (it assumes the use of offset assembly, as described above):
- 1.10
- DEF FNcommand(I%,A$)
- 1.10
- [ OPTpass : EQUS A$ : EQUB0 :
- 1.10
- ALIGN
- 1.10
- EQUD EVAL(A$)
- 1.10
- EQUD I%
- 1.10
- EQUD EVAL(A$+“syntax”)
- 1.10
- EQUD EVAL(A$+“help”)
- 1.10
- ]:=pass
- 1.10
- OPT FNcommand(“NewCmd”,N) will create a table entry, using the labels
- .NewCmd .NewCmdhelp and .NewCmdsyntax (N is the information word).
- 1.10
- Note that ‘pass’ is the name of the pass variable — change this if you
- use a different name.
- 1.10
- Podule manager/Clock slowdown
- 1.10
- (Ref. issue 7, page 44) The problem here is that SWIs are passed to
- modules with interrupts disabled, so if the SWI takes a significant
- amount of time to complete, the clock will slow down (the mouse pointer
- will also become sluggish). I can’t see why the podule manager should
- need interrupts off, so it’s probably an unintended ‘feature’ — SWI code
- which takes time to execute SHOULD enable interrupts, unless they have
- to be off. (The digitiser module only runs with interrupts off when
- absolutely necessary!) When interrupts have been disabled for signifi
- cant amounts of time, the seconds count of the real-time clock gets out
- of step with the minutes, which then don’t roll over at 59 secs — this
- looks weird if you don’t know about it!
- 1.10
- System Devices
- 1.10
- (Ref. issue 6, page 41) There is a very interesting feature, which I
- haven’t seen documented, concerning device oriented filing systems. When
- you set the printer type using *FX5,n where n is greater than 2, the OS
- looks for a system variable called printertype$n — n being the value
- used for FX5. This variable holds the name of the output file or device
- to which printer output should be sent. The Econet module, NetPrint,
- uses this to set printer type 4 to “netprint:”. What happens is that
- when you do <ctrl-B>, a file is opened, with the name given in this
- system variable, and <ctrl-C> closes the file. While this would normally
- send output to a hardware device, it can also use the name of a normal
- file; e.g.
- 1.10
- *set printertype$5 outfile
- 1.10
- *fx5 5
- 1.10
- Will cause subsequent printer output to be written to the file “outfile”
- — handy for debugging, and for saving data to print on other machines.
- Note that this will only work if a program does VDU2, sends ALL its
- output, then does VDU3. If it keeps turning the printer on and off all
- the time with VDU2/3, only the last part of the output will be in the
- file, as VDU2 re-opens the file, discarding its previous contents.
- (Econet users know only too well the problems caused by software not
- handling the printer correctly!)
- 1.10
- Just for fun, try :
- 1.10
- *set printertype$5 vdu:
- 1.10
- *fx5 5
- 1.10
- <Ctrl-B>
- 1.10
- All vdu output will appear ttwwiiccee!! — once via the normal route, and
- again via the printer stream.
- 1.10
- Use of SYS
- 1.10
- (Ref. issue 9, page 47) The following is a bomb-proof version of OSCLI
- in BASIC, which will report errors without entering BASICs error handler
- (it can also be used for other SWIs — e.g. OS_File to trap filing errors
- neatly)
- 1.10
- DEFPROCoscli(OS$)
- 1.10
- LOCAL flag%,error%
- 1.10
- SYS“XOS_CLI”,OS$ TO error% ; flag%
- 1.10
- IF flag% AND 1 THEN P.“Error : ”;:SYS“OS_Write0”,error%+4
- 1.10
- REM the error number can be read using !error%
- 1.10
- ENDPROC
- 1.10
- It works by reading back the V flag and error pointer returned by the X
- version of the SWI
- 1.10
- TWIN
- 1.10
- (Ref. issue 7, page 7) You can warm start Twin using *Twin -warm, using
- the same version of Twin, of course — *GO may cause problems if the code
- has been corrupted, (or you’ve forgotten the address!). There is a bug
- in all the versions of Twin I’ve seen (I’m not sure what version has
- been released), which means that when exiting from TWIN to BASIC, the
- event vector is messed up, so if you overwrite the address where Twin
- was run, and enable events, the machine crashes. This can be avoided by
- doing QUIT, *BASIC, and OLD.
- 1.10
- In one issue, there was a tip for entering ARMBE automatically at the
- line in error — here’s a similar routine if you prefer using TWIN to
- edit BASIC programs — It uses the TWINO8 option to strip line numbers
- (which you don’t need to use, DO YOU!!). If the error wasn’t Escape,
- pressing <Y> will enter TWIN at the line where the error occurred. Note
- that it assumes lines are numbered in 10s — this will be the case if the
- program has been edited in TWIN without line numbers, but not if lines
- have been inserted/deleted from the BASIC prompt — in this case, enter
- TWIN, and exit again, or do RENUMBER.
- 1.10
- ON ERROR PROCERR
- 1.10
- ...
- 1.10
- ...
- 1.10
- DEFPROCERR
- 1.10
- REPORT:PRINT“ at line ”ERL
- 1.10
- IF ERR=17 END
- 1.10
- PRINT“EDIT ?”:IF GET$=“Y” ELSE END
- 1.10
- *FX138 0 129
- 1.10
- *FX138 0 128
- 1.10
- FORA%=1 TO LEN(STR$(ERL DIV10))
- 1.10
- SYS 6,138,,ASC(MID$(STR$(ERL DIV10),A%,1))
- 1.10
- NEXT:*FX138 0 13
- 1.10
- END
- 1.10
- Hidden software
- 1.10
- (Ref. issue 9, page 4) Take a close look at the digitiser module!
- 1.10
-
- Hints & Tips
- 1.11
- • *COMPACT − The User Guide says that *COMPACT “moves files around on
- the disc, collecting all the free space into a continuous block”.
- However, if you have a disc that has several gaps you will find that you
- need several compactions. One disc which had 5 gaps in the FS map had to
- be compacted eight times before the map showed only a single gap. (See
- review of R.A.Engineering’s Utilities, page ?????)
- 1.11
- • *COPY − When copying multiple files using wildcards, you must ONLY
- specify the directory into which to copy and not try to specify the
- actual file name in any way e.g. if you want to copy files PROGA, PROGB,
- PROGC etc from the “BASIC” directory into the “BACKUP” directory, use
- *COPY $.BASIC.PROG* $.BACKUP.* but if you try to use *COPY $.BASIC.PROG*
- $.BACKUP.PROG* it won’t work. This is not desperately clear in the User
- Guide and I’ve only just worked out why 90% of my attempts to do
- wildcard copies have not worked!
- 1.11
- • CAPS LOCK − Another thing which is obvious if you know about it is
- that you can set up the keyboard to print upper case normally but then
- go into lower case when you press <shift>. This can be done either by
- *Configure SHCAPS if you want it to start up in that mode (or CAPS or
- NOCAPS if you don’t) or by holding the shift key down and pressing and
- releasing the Caps Lock key.
- 1.11
- • CHAINing programs − In response to our complaint in last month’s Bug
- or Feature that programs chaining one another cannot be called from
- drive 1 using the desktop, Philip Colmer of Acorn’s Customer Support
- Department tells us that it is definitely a feature. There are a number
- of ways of avoiding the problem. Firstly, you could reference files by
- disc name, so we could CHAIN“:ProgDisc.$.Progs.Nextprog” or whatever.
- Alternatively, you could use the fact that when you run a BASIC program
- in drive 1 from the desktop, it generates a command something like
- *basic −quit “ADFS::1.$.Progs.FirstProg”. You could then use OS_GetEnv
- to read the command string and find out where the program has been
- called from. Thridly, have a look at PC.PC from the 1.20 version of the
- PC emulator to see an intelligent (incredibly so!) boot-up program which
- has been very carefully commented to enable you to modify it for your
- own use.
- 1.11
- • Auto-booting − Again from Philip Colmer comes the suggestion that
- you should use the PC.PC program to boot up applications from within
- directories on the hard disc. The program uses legal OS calls instead of
- re-configuring. It does a *DIR and then runs the program specified. The
- only restriction on it is that it cannot change the system sprite size
- but, he points out, if programs were written properly, they would not be
- using the system sprite area!
- 1.11
- • System Devices − You can treat devices as files, e.g.
- C%=OPENOUT(“NETPRINT:”). This is particularly useful in the example
- given on page 9 last month because you can now open a channel to the
- network printer, send some stuff to it when you are ready (using BPUT
- #C%) and when everything is done, close the ‘file’ (CLOSE#0) and it will
- then be printed! (This also came from Philip Colmer − Thanks PC! −
- Funny, you know, I always thought that PC stood for Personal Computer!
- Ed.)
- 1.11
- The following Hints were prepared by Adrian LookÉ
- 1.11
- • Smooth Scrolling − Using VDU 23,7 you can scroll the current text
- window up, down, left, or right. Horizontally, the picture can be
- scrolled by one byte, but vertically it can only be scrolled by one
- character cell. This can produce a smooth scroll by placing a WAIT (for
- the vertical sync pulse) command before the VDU 23,7. If any further
- delay is implemented then the picture shudders as it scrolls. This means
- that a slow smooth scroll cannot be used. The answer is to redefine the
- screen base address manually (as we used to do on the BBC). This is done
- using ‘OS_Word’ &16.
- 1.11
- DIM block% 4
- 1.11
- :
- 1.11
- block%?0=type
- 1.11
- block%!1=offset
- 1.11
- WAIT
- 1.11
- SYS “OS_Word”,&16,block%
- 1.11
- “type” : when 1 − base used by VDU drivers (i.e. screen updated)
- 1.11
- : when 2 − base used by hardware (i.e. screen displayed)
- 1.11
- “offset” : from the address of the base of the screen buffer to the
- start of the screen display.
- 1.11
- The following example program should help to make it clearer.
- 1.11
- 10 REM >scrolling
- 1.11
- 20
- 1.11
- 30 REM **************************
- 1.11
- 40 REM * Scrolling Screens?? *
- 1.11
- 50 REM * written by Adrian Look *
- 1.11
- 60 REM * 21st July 1988 *
- 1.11
- 70 REM **************************
- 1.11
- 80
- 1.11
- 90 MODE 0:OFF
- 1.11
- 100 DIM block% &10
- 1.11
- 110 count=0
- 1.11
- 120
- 1.11
- 130 PRINTTAB(3,15);“Some text”
- 1.11
- 140
- 1.11
- 150 REPEAT
- 1.11
- 160 PROCscroll(1)
- 1.11
- 170 UNTIL 0
- 1.11
- 180 END
- 1.11
- 190
- 1.11
- 200 DEFPROCscroll(speed)
- 1.11
- 210 PROCinfo
- 1.11
- 220 add=x/m
- 1.11
- 230 IF SGN(count)>0 THEN speed=-speed
- 1.11
- 240 REPEAT
- 1.11
- 250 block%?0=2
- 1.11
- 260 block%!1=add*count
- 1.11
- 270 WAIT
- 1.11
- 280 SYS “OS_Word”,22,block%
- 1.11
- 290 count+=speed
- 1.11
- 300 UNTIL add*count>x*y/m+4160 OR count<0
- 1.11
- 310 ENDPROC
- 1.11
- 320
- 1.11
- 330 DEFPROCinfo
- 1.11
- 340 SYS “OS_ReadModeVariable”,MODE,4 TO ,,x
- 1.11
- 350 x=4-x:x=8*(2^x)*10
- 1.11
- 360 SYS “OS_ReadModeVariable”,MODE,5 TO ,,y
- 1.11
- 370 y=3-y:y=y*256
- 1.11
- 380 SYS “OS_ReadModeVariable”,MODE,3 TO ,,c
- 1.11
- 390 CASE c OF
- 1.11
- 400 WHEN 1 : m=8
- 1.11
- 410 WHEN 3 : m=4
- 1.11
- 420 WHEN 15 : m=2
- 1.11
- 430 WHEN 63 : m=1
- 1.11
- 440 ENDCASE
- 1.11
- 450 ENDPROC
- 1.11
-
- 1.11
- • Desktop Utilities − The desktop is essentially a skeleton program
- which allows the programmer to install his/her own icons, windows,
- menus, commands, etc, which the DeskTop will then operate. This is done
- with a very clever set of FN’s. for example:
- 1.11
- PROCinstall(“adrian”)
- 1.11
- :
- 1.11
- DEFPROCinstall(file$)
- 1.11
- INSTALL file$
- 1.11
- void=EVAL(“FNinstall_file_”+file$)
- 1.11
- ENDPROC
- 1.11
- This means that by EVALuating a string the DeskTop can call any file-
- specific function. In the case above, FNinstall_file_adrian will be
- called. By using this system, any command can be ‘installed’ or even
- replaced. Explaining or even listing the functions and procedures
- available in the DeskTop program is not really possible in the magazine.
- However, bearing in mind the methods used, you will find before long you
- can write some very useful tools for the DeskTop. It should even
- possible to completely re-write the it! As an example, here is a program
- which will allow you to use star commands. Don’t forget to *SETTYPE
- ‘filename’ FE0 to indicate that the program is a desktop utility (We
- have included several other utilities on the program disk).
- 1.11
- 10 REM >star
- 1.11
- 20
- 1.11
- 30 REM *******************************
- 1.11
- 40 REM * Star Commands for Desk Top *
- 1.11
- 50 REM * written by Adrian Look *
- 1.11
- 60 REM * original idea Denis Howlett *
- 1.11
- 70 REM *******************************
- 1.11
- 80
- 1.11
- 90 DEFFNinstall_file_star
- 1.11
- 100 file=OPENIN(filehandler_path$+“.istar”):CLOSE #file
- 1.11
- 110 IF file=0 THEN ERROR 1,“Can’t find icon file ‘istar’”
- 1.11
- 120 OSCLI(“SMERGE ”+filehandler_path$+“.istar”)
- 1.11
- 130
- PROCsys_addtoiconbar(“star”,“command”,&301A,icon_fgcol,icon_bgcol,48)
- 1.11
- 140 SYS “Wimp_ForceRedraw”,-1,0,0,1279,100
- 1.11
- 150 =0
- 1.11
- 160
- 1.11
- 170 DEFFNaction_star
- 1.11
- 180 PROCstar_command(5,5,75,25,2,1)
- 1.11
- 190 =0
- 1.11
- 200
- 1.11
- 210 DEFPROCstar_command(x0,y0,x1,y1,bx,by)
- 1.11
- 220 *POINTER 0
- 1.11
- 230 VDU 26,4,28,x0,y1,x1,y0
- 1.11
- 240 y0=31-y0:y1=31-y1
- 1.11
- 250 gx=x0*16-bx*8:dx=(x1-x0)*16+bx*16+16
- 1.11
- 260 gy=y1*32-by*16:dy=(y0-y1)*32+by*32+32
- 1.11
- 270 GCOL 0,&4:RECTANGLE FILL gx-4,gy-4,dx+8,dy+8
- 1.11
- 280 GCOL 0,&0:RECTANGLE FILL gx,gy,dx,dy
- 1.11
- 290 LOCAL ERROR
- 1.11
- 300 REPEAT
- 1.11
- 310 ON ERROR LOCAL PRINT REPORT$
- 1.11
- 320 *FX 4,0
- 1.11
- 330 INPUT“*”star$
- 1.11
- 340 *FX 4,1
- 1.11
- 350 OSCLI(star$)
- 1.11
- 360 UNTIL star$=“”
- 1.11
- 370 RESTORE ERROR
- 1.11
- 380 SYS “Wimp_ForceRedraw”,-1,gx-4,gy-4,gx+dx+8,gy+dy+8
- 1.11
- 390 VDU 26,5
- 1.11
- 400 *FX 21,9
- 1.11
- 410 *POINTER
- 1.11
- 420 ENDPROC
- 1.11
- N.B. (i) You will need a STAR shaped icon called ‘command’, saved as
- ‘istar’. However, if you want to test the program before designing an
- icon, skip lines 100-120 and change “command” in line 130 to “unknown”.
- 1.11
- (ii) Because the DeskTop uses the filename of the utility as a ‘seed’,
- it important that the utility’s filename be consistent with its
- procedure names. For example: if you rename ‘star’ to ‘command’ then the
- DeskTop will look for FNaction_command instead of FNaction_star, so you
- will get an error!
- 1.11
- • Making the Print Key Save − Last month it was suggested in Neil
- Strong’s article about making the print key print that a slight
- modification of the program could make it save screen shots to the disc
- using SCREENSAVE “$.pic” instead of HARDCOPYFX. However, this limits you
- to one screen shot at a time (otherwise you will overwrite your last
- one). If we use the system variables and update the ‘print key’ program
- we can get it to save a screen called ‘$.scr0’, followed by, ‘$.scr1’,
- ‘$.scr2’..etc!
- 1.11
- 871 adr r0,command1
- 1.11
- 872 swi “OS_CLI”
- 1.11
- 920 equs “ScreenSave scr<file>” ; FastSave even!#?
- 1.11
- 941 .command1
- 1.11
- 942 equs “SetEval file file+1”
- 1.11
- 943 EQUB 0
- 1.11
- 944 ALIGN
- 1.11
- 1020 OSCLI(“SetEval file 0”)
- 1.11
- 1030 END
- 1.11
- If you wish to (re)set the ‘file count’ to n, then just type:
- 1.11
- *SETEVAL file n
- 1.11
- • SpellMaster Browse in Wordwise Plus − If you have Spell-Master and
- Wordwise Plus you can very easily write a two line segment program which
- will call the browse window. i.e.
- 1.11
- *BROWSE
- 1.11
- DISPLAY
- 1.11
- Thus if the program were in segment zero you could press <shift><print>
- while editing your text and check your spelling using the browse window.
- This obviously opens up all sorts of possibilities for Wordwise Plus to
- use Spell Master’s facilities.
- 1.11
-
- • PipeDream − For those who have not used View etc and who have
- therefore not had to fight printer drivers, the following may be useful:
- 1.12
- The printer driver is loaded on initialisation and when <Alt><P><D> is
- used, but NOT when a document is printed, so any changes made to a
- printer driver are not acted upon until either of these events. It’s
- obvious really, but if you haven’t registered the fact, it could cause a
- lot of confusion.
- 1.12
- For those who wish to use bold throughout a document, (e.g. for
- producing something on a dot-matrix printer that will go through a Fax
- machine) it would seem an obvious solution to put markers at the
- beginning and end of the document and make it all bold highlight.
- However, this is not a good idea because your printer will have to cope
- with double printing each word, one word at a time! Instead, change the
- printer driver so that the bold highlight is NOT cancelled at the end of
- a line. i.e. change the Y to an N and either send the necessary ESC
- sequence in the PON line or put a highlight 2 at the very start of your
- text.
- 1.12
- • Transferring character definitions − If you have files produced by
- the CHARDES program from the Master Welcome disc (mentioned last month,
- page 34) here is a little BASIC program to run the files on the
- Archimedes:
- 1.12
- 10 REM >ThinChar
- 1.12
- 20 CLS : INPUT “FileName ”;A$
- 1.12
- 30 OSCLI (“LOAD ”+A$+“ 12800”)
- 1.12
- 40 FOR I=127 TO 32 STEP -1
- 1.12
- 50 VDU23,I
- 1.12
- 60 VDU(?(&12844+I-32))
- 1.12
- 70 VDU(?(&128A4+I-32))
- 1.12
- 80 VDU(?(&12904+I-32))
- 1.12
- 90 VDU(?(&12964+I-32))
- 1.12
- 100 VDU(?(&129C4+I-32))
- 1.12
- 110 VDU(?(&12A24+I-32))
- 1.12
- 120 VDU(?(&12A84+I-32))
- 1.12
- 130 VDU(?(&12AE4+I-32))
- 1.12
- 140 NEXT
- 1.12
- • Quazer (again). The fix for Quazer 1.42 is ?&3D090=N¼ of lives,
- ?&3D98F=&F2, *SAVE Quazcode 9000 +365AC, *settype Quazcode FF8. •
- Printing in binary − PRINT ~number% prints number% in hexadecimal but
- there isn’t an equivalent for printing in binary. However, there are SYS
- commands that will do it for you. The following program illustrates the
- use of SYS &E0 which converts a number to a four byte binary number
- string (SYS’s &DF, DE and DD convert to 3, 2 and 1 byte binary numbers).
- 1.12
- The only other point of interest in the program is the way that the
- leading zeros are stripped off by lines 190, 200 (which can be omitted,
- of course, if you want the leading zeros!). The INSTR command finds the
- position of the first “1” starting from the left hand end of the string,
- take off one to give the number of zeros to be removed. The LEFT$
- command at line 200 turns those zero characters into the character set
- by pad$. (This illustrates the fact that you can use string functions on
- the left hand side of an assignment.) If pad$ is a space character, the
- binary numbers produced will all be the same length and so will be right
- justified but if you want the strings left justified, you can set pad$
- to CHR$0. (An alternative for left justification would be to use
- numb$=RIGHT$(numb$,32-n%).)
- 1.12
- 10 REM > BinPrint
- 1.12
- 20
- 1.12
- 30 pad$=CHR$0 :REM left justif’n
- 1.12
- 40 pad$=“ ” : REM right justif’n
- 1.12
- 50 OS_ConvertBinary4=&E0
- 1.12
- 60
- 1.12
- 70 REPEAT
- 1.12
- 80 INPUT “Number? ”number$
- 1.12
- 90 number%=EVAL(number$)
- 1.12
- 100 A$=FNbinconvert(number%)
- 1.12
- 110 PRINT A$
- 1.12
- 120 UNTIL0
- 1.12
- 130
- 1.12
- 140 DEF FNbinconvert(numb%)
- 1.12
- 150 LOCAL numb$,n%
- 1.12
- 160
- 1.12
- 170 SYS OS_ConvertBinary4,numb%,
- 1.12
- 32,numb$ TO numb$
- 1.12
- 180
- 1.12
- 190 n%=INSTR(numb$,“1”)-1
- 1.12
- 200 LEFT$(numb$,n%)=STRING$(n%
- 1.12
- ,pad$)
- 1.12
- 210 =numb$
- 1.12
- • Hard Disc Head Parking − Don’t forget that if the RFS is selected,
- it will accept the *BYE command but it will not park the heads on the
- drive. You have to be in ADFS.
- 1.12
- • Screenload/save − It is interesting to compare the time taken to
- save and load screens using *screensave and *screenload with the time
- taken to define the whole screen as a sprite and save it using *Ssave or
- load it with *Sload. In all modes there is considerable saving e.g.
- 1.12
- Mode1 Mode12 Mode 15
- 1.12
- *Screensave(load) 7(4) 25(18) 52(38)
- 1.12
- *Ssave(load) 1(<1) 3(3) 7(6)
- 1.12
- • Libraries and *mountÉ If you *mount a disc, the library from the
- previous disc remains in memory. For those with a single drive, this may
- seem a nuisance but the reason the library is not changed is that you
- can have a library on one drive and shove discs in and out of the other
- drive without losing the library − particularly important with hard
- discs. Obviously you could reselect the library with *library $.Library
- but it is much easier to use *bye. That way, you don’t even have to use
- *mount.
- 1.12
- • Reliable RS423 transfer from BBC’s. This is mostly just reiterating
- what has gone before, but to transfer reliably from BBC to Archimedes at
- 9,600 baud you need to [1] use the 1.24 serial patch (on Archive program
- disc 7) [2] Set *Configure DATA 5 (i.e. 8 data bits and 1 stop bit which
- is the default on the BBC) and [3] connect the BBC’s RTS output to the
- Archimedes’ DSR input (pin 6) instead of the CTS input (pin 8) and link
- pins 1, 4 and 8 together.
- 1.12
- • View A3.0 Further to the patches given in July issue (Vol. 1.10 page
- 6) Richard House reckons that instead of using &FF’s in the various
- locations you should use &00’s. (If someone has a working version of
- A3.0, please send it in so that we can add it to our collection of
- working patches!)
- 1.12
- • Viewstore 1.1 − Following on from the July Hints & Tips, not that
- not only should &ABE2, 3 and 4 be set to &EA, but also, the LDA #&82,
- JSR OSBYTE (&A9, &82, &20, &F4, &FF) routines need to be altered as with
- View A3.0. These occur at locations &A256 − A25A, &AA22 − AA26 and &AB98
- − AB9C. The code required in each of these locations is &A2, &00, &A0,
- &00, &EA. (LDX #&00, LDY #&00, NOP). (If you can’t cope with these
- technicalities, send us a disc with Viewstore 1.1 on it and we’ll modify
- it for you.)
- 1.12
- • Correct Nesting? To check that the nesting of loops, IF’s and CASE’s
- is correct within a program, use LISTO2 and LIST the program. If at the
- end of the program, the final line has two or more spaces after the line
- number, you’ve got an incorrect nesting somewhere. To check through,
- there should be no spaces between line numbers and DEFPROC’s, DEFFN’s or
- ENDPROC’s.
- 1.12
- • Marconi Trackerball. Archimedes’ mouse’s tail can apparently be
- removed, so says Mr T A Doncaster, and plugged into an identical
- connector within the Marconi RB2/PC-1 tracker ball and all works without
- any further fiddling about. Watch that the supply polarity is correct
- though.
- 1.12
- • Readable zeros. In InterSheet in particular, I find the slashed-
- zeros misleading − they can easily be mistaken for eights. If you re-
- program the zero character using a VDU23 command you can avoid the
- confusion. It does increase the possibility of confusion with a capital-
- O but that is far less important in spreadsheet work than confusion with
- 8. So, I store the following program in the RAM on the RFS and call it
- up with *IS<return>:
- 1.12
- 10 REM >RFS:IS
- 1.12
- 20 VDU23,48,60,102,102,102,102,
- 1.12
- 102,60,0
- 1.12
- 30 CHAIN “RFS:ISHEET”
- 1.12
- No doubt you could modify this program if you wanted to use the same re-
- programmed zero character with other spreadsheet software.
- 1.12
- • Computer salutions. R.E.Boldero, in the July edition, asked for a
- way of getting his computer to greet him each time he switched on. The
- next hint shows a partial solution.
- 1.12
- • RFS Boot file − If you use a ROM podule with battery backup, you can
- create a boot file that runs in the RFS and sets up all sorts of
- goodies. I used to have a BASIC program called !BOOT which set up all
- sorts of things on power-up or <ctrl-break> but if you are developing a
- BASIC program, get stuck and press <ctrl-break>, you lose the program
- because it is replaced by the boot program!!!!! After Adrian had fallen
- into this trap a few times when using my computer, he developed the
- following rather ingenious (not to say devious) EXECable boot program.
- (*Configure Filesystem RFS, *Configure Boot and *OPT 4,3 in the RFS.)
- 1.12
- We have since added a facility for making Arthur talk to you a bit more
- politely, from an idea sent in by Chris Hayes.
- 1.12
- To create the boot file, I start with the following Wordwise Plus file
- which is then spooled as “RFS:!BOOT”. (The line numbers are purely for
- discussion purposes.)
- 1.12
- 1 <gr>LL160<gr>PC “~”
- 1.12
- 2 VDU21
- 1.12
- 3 VDU6,11,32,32,32,32,32,32,21
- 1.12
- 4 VDU6,19,0,4,0,0,0,21
- 1.12
- 5 VDU6,19,1,0,0,0,0,21
- 1.12
- 6 VDU6,13,11,11,11,11,11,21
- 1.12
- 7 VDU6:COLOUR 6:VDU21
- 1.12
- 8 VDU6:PRINT“N o r w i c h C o
- 1.12
- m p u t e r S e r v i c e s“
- 1.12
- :VDU21
- 1.12
- 9 VDU6:COLOUR 7:VDU21
- 1.12
-
- 1.12
- 10 *SETCLI$PROMPT <13><10>Good
- 1.12
- Morning! *
- 1.12
- 11 *IF SYS$TIME LEFT 2>11 THEN SET
- 1.12
- CLI$PROMPT <13><10>Good Afternoon! *
- 1.12
- 12 *IF SYS$TIME LEFT 2>18 THEN SET
- 1.12
- CLI$PROMPT <13><10>Good
- 1.12
- Evening! *
- 1.12
-
- 1.12
- 13 *KEY0 *MOUNT 0|M*FREE|M*CAT|M
- 1.12
- 14 *KEY1 etc...
- 1.12
- 20 *KEY12 *FORMAT 0 D|M
- 1.12
-
- 1.12
- 21 *SET Run$Path ,ADFS:$.,RFS:$.
- 1.12
- ,%.
- 1.12
- 22 *SET Alias$> CAT
- 1.12
-
- 1.12
- 23 *FX255,8
- 1.12
- 24 *ADFS
- 1.12
- 25 *BASIC<gr>OC6
- 1.12
- The LL160 command (1) ensures that the command lines are not split up
- and the PC command ensures that the pad characters are sent when
- spooling the file. (2) switches off the screen display, but since this
- actual command appears on the screen, (3) moves up and wipes it out
- again! (4) and (5) change foreground and background colours (6) moves
- the cursor back up the screen, before printing out a welcome message in
- a different colour, (7 & 8) and switching back to white (9). The IF
- SYS$TIME commands then sets up the Arthurian prompt (normally a star on
- its own) to be something a bit more timely. (This doesn’t automatically
- change the greeting as the time of day changes, it gives you the
- greeting that was appropriate last time you pressed <ctrl-break>.) The
- function keys are then programmed, the runpath is set up etc (21 − 24)
- (See Archive 1.7, page 8) before BASIC is invoked with an OC6 to re-
- enable the screen.
- 1.12
- (You could create it by making it a BASIC program that started...
- 1.12
- *SPOOL RFS:!BOOT
- 1.12
- PRINT“VDU21”
- 1.12
- and endedÉ
- 1.12
- PRINT“*BASIC”;CHR$(6);
- 1.12
- *SPOOL
- 1.12
- I haven’t tried this BASIC version, but I presume it would work.)
- 1.12
- • Keyboard repeat speed. You may have noticed with First Word Plus or
- other wordprocessors that when pressing <return> on auto-repeat it
- cannot keep up and, when you take your finger off the key, it goes on
- spewing out returns until the keyboard buffer is empty. You can avoid
- this by reducing the auto-repeat speed with, say, *Configure repeat 15
- (instead of the default of 8) and then pressing <ctrl-break>. (It should
- really be called the auto repeat time as the number is the time in
- centi-seconds between repeats.) Instead of changing the configuration,
- you may prefer to could add a *FX12,15 command into the !BOOT file and
- then press <ctrl-break> after your WP session to restore the default
- repeat speed.
- 1.12
- • Disappearing cursor in EDIT. Have you noticed that if you hold the
- cursor key down in the BASIC editor, the cursor disappears so that you
- can’t see where it is on the line? Try changing the auto repeat speed as
- mentioned in the hint above − doesn’t always work, but it seems to make
- it better if you have a faster speed (smaller number in the command).
- 1.12
- • Auto indenting in EDIT. Some people like to put the indenting into
- the program itself to show the structure (as opposed to using LISTO3 to
- show the structure when you list it). If you are using the ARM BASIC
- editor, you can add the spaces automatically as you type in the program.
- What happens is that if you put a number of spaces at the beginning of
- one program line then, when you press <return>, the new line has the
- same number of leading spaces as the line before, so until you reach a
- REPEAT or UNTIL or FOR or NEXT etc, you just press <return> and type the
- next line without thinking about the indenting.
- 1.12
- • Disappearing programs in EDIT!! On the BASIC editor, if you edit a
- line that occupies more than one screen line and make it shorter, it may
- leave a blank line on the screen (no problem − this disappears as soon
- as you move the cursor away from that line). If you then press <return>
- to create a new line, the new line goes in the gap left by the editing
- (still, apparently, no problem). However as soon as you try to use any
- of the move, delete, or copy functions, all the line numbers go wrong
- and cursor movement becomes rather unpredictable. Indeed, if you move
- down the program, you will find that when the line that was edited moves
- off the top of the screen, the scrolling continues and the program
- disappears into oblivion! (Reset and OLD will recover your program
- intact.)
- 1.12
- The solution is, if you get a line gap, either re-number (which happens
- automatically if the line numbers were already consecutive) or move down
- a line then back up again before pressing <return>.
- 1.12
- • Pencil for Artisan. If you want to add a ‘pencil’ facility to
- Artisan, the joined-lines function can be made to provide this in the
- following way. (1) Using a copy (not the original!!) of the Artisan
- disc, enter the BASIC editor and load ART5. (2) Use Search and Edit to
- find DEFPROCKB. (3) Alter the procedure so that it looks like this:-
- 1.12
- DEFPROCKB
- 1.12
- LOCAL X%, Y%, B%
- 1.12
- IF J%=6 AND CLARE%=-1 THEN
- 1.12
- MOUSE X%,Y%,B% :ENDPROC
- 1.12
- ELSE
- 1.12
- REPEAT:MOUSE X%,Y%,B%:UNTIL B%<>BB%:ENDPROC
- 1.12
- ENDIF
- 1.12
- (4) Save this as ART5. (5) For completeness, use the Welcome utility,
- SEDIT, to change the joined-lines icon into a pencil icon. (6) Now, with
- the joined-lines function selected, holding down <select> draws a
- continuous line. On releasing <select>, the normal rubber band line
- appears, but it can be released by pressing <adjust> once. Pressing
- <adjust> again carries out the UNDO function.
- 1.12
- (While on the subject of modifying Artisan, note the short addition in
- Acorn User, April ’88 which adds an airbrush effect.)
- 1.12
- • Star LC24-10. If you are having problems with getting a Star LC24-10
- to accept output from First Word Plus or Graphic Writer, check the EPROM
- chip in the printer next to the dip switches. If it has a label on it
- showing version 1.0, contact Star Micronics and they will supply a free
- up-grade.
- 1.12
- • Moving menus. If you find that your menus keep moving about, drag
- the box down to the extreme bottom right corner of the screen until you
- can go no further. This makes them a little more secure − simple, but
- soothing!
- 1.12
- • Programming for speed. Programs like EMR’s SoundSynth and Minerva’s
- Hoverbod and Missile Control are actually written in BASIC, with calls
- to ARM assembly language routines where extra speed is really necessary.
- 1.12
- If you thought professional quality programs demanded assembly language
- only, think again! Perhaps there is a program you had thought of
- writing, but did not feel could be written in BASIC; the speed of the
- Archimedes has changed all of that.
- 1.12
- Your strategy should be to write the whole program in BASIC first and
- then see which routines need replacing with assembly language in order
- to provide the right response times.
- 1.12
- Mike Ginns’ recent book from DABS Press, “Archimedes Assembly Language”,
- contains a large number of assembly language counterparts for BASIC
- statements (he calls them “templates”), and would be of great value if
- you want to try your hand at this sort of approach. Although the book
- has rather a large number of grammatical errors and is not quite as
- fully comprehensive as it claims to be, but is still a good buy at
- £14.95. (Ian Nicholls)
- 1.12
- First Word Plus Hints
- 1.12
- • Using PC’s − If you have access to a PC and a PC version of First
- Word Plus, you may be interested to know that you can transfer files
- between the two using the Getfile and Putfile utilities of the PC
- Emulator. You can even transfer supplementary dictionaries the same way.
- 1.12
- • Adding printer drivers − It may not be very obvious how you add the
- extra printer drivers that we’ve provided on the program discs, onto
- your First Word Plus disc. Suppose you want the Kaga Taxan driver. Put
- in the program disc and type
- 1.12
- *copy 1WP.cfg.Kaga_Taxan 1WP.cfg.* P
- 1.12
- then change discs and press <space> as prompted. (Or use dual drives if
- you have them.)
- 1.12
- • Default printer driver − If you want to make, say the Juki driver,
- the default so that it comes up with that as the driver when you boot up
- the disc, use:
- 1.12
- *copy $.1WP.cfg.Juki $.Res*.
- 1.12
- 1WP.1wp_print F
- 1.12
- The F in the copy command makes it over-write the existing default
- driver.
- 1.12
- • Paging problems. You can now get a version of First Word Plus that
- obeys the command in the printer driver to stop at the end of a page to
- allow you to change the paper. Brian Carroll writesÉ “I returned my disc
- to Acorn and had it back by return of post with a clear and helpful
- letter. It seems that Acorn are at last getting the message about
- customer support. There are only two modified files: $.resources.1WP.1WP
- and $.resources.1WP. 1ML, so for anyone who has done some work to
- configure their working master disc it would be simpler just to copy
- these two files across than to start again from scratch. The bug-fix
- works OK, so the printer drivers that I sent for Canon PW-1080A (program
- disc number 10) will work properly.”
- 1.12
- • LQ1050 − You can add double height to the printer driver merely by
- using Search and Replace, changing 57 for 77 (double width for double
- height). It works fine − the only thing to remember is to set the line
- spacing to 2 in the ruler when choosing expanded pitch.
- 1.12
- • Large documents. Beware when you are printing long documents (30
- pages+) as FWP can get a bit confused and print the wrong pages.
-
-
- • How to wipe a disc clean − If you want to wipe a disc completely
- clean, you can use *WIPE * ~CFR<return> (Use this command with care −
- there’s no going back once you’ve pressed <return>!) − in other words,
- remove files with any name (*), don’t ask for confirmation of each wipe
- (~C), force them (F) to be deleted even if they are locked and do it
- recursively (R) so that the contents of all directories are deleted.
- However, even this drastic measure won’t allow you to delete a library
- directory if one exists. So do a *Lib “”<return> before the *WIPE
- command.
- 2.1
- • GammaPlot/System Delta Plus − If you have been trying to import SDP
- files into GammaPlot and have been unsuccessful, read onÉ Firstly you
- have to copy the System Delta Plus software onto your GammaPlot disc.
- Then if it still doesn’t work, it will be because you have an older
- version of System Delta Plus. Send the original SDP disc back to Minerva
- and ask for an up-grade.
- 2.1
- • Mounting problems (sic) − Do you find that sometimes it refuses to
- respond to a *MOUNT command even if you take the disc out and put it
- back in again? Two solutions: type *BYE and then you should find that
- *CAT will cause it to access the disc OR if, like me, you’ve got *MOUNT
- on a function key, just do a *MOUNT with no disc in the drive then
- *MOUNT with the new disc in place. If you are in First Word Plus where
- you cannot issue star commands anyway, the latter technique should do
- the trick since you can achieve the equivalent of *MOUNT by clicking on
- the close box (the X) in the file menu. (Just as a matter of interest,
- does anyone know why it gets into this state sometimes?)
- 2.1
- • Users of C (and other compiled languages) may find the following
- command file useful, as sent in by Peter Linstead. You can put it in the
- $ directory of your hard disc and use it when starting a C programming
- session. Once you have assigned your current program’s name to NAME
- using, for example, *SET NAME MYPROG you can edit the source file by
- pressing <f1>. Once out of TWIN, <f2> will compile and link the source
- code and <f3> will execute the run code. By using SETMACRO, you can
- change the working name with another *SET command without running the
- command file again. It assumes that both FPE and TWIN are in the
- $.Library.
- 2.1
- *| > $.Library .C
- 2.1
- *FPE
- 2.1
- *DIR $.ARM.BENCH
- 2.1
- *SETMACRO ALIAS$AUTOT *TWIN
- 2.1
- C.<NAME> |M
- 2.1
- *SETMACRO ALIAS$AUTOC *CC <NAME>
- 2.1
- − LINK |M
- 2.1
- *SETMACRO ALIAS$AUTOR *RUN
- 2.1
- P.<NAME> |M
- 2.1
- *KEY 1 *AUTOT|M
- 2.1
- *KEY 2 *AUTOC|M
- 2.1
- *KEY 3 *AUTOR|M
- 2.1
- *SET RUN$PATH ,%.,$.ARM.LIBRARY.,@.P.
- 2.1
- *GOS
- 2.1
- (I have just reproduced this from Peter’s hand-written letter and I
- haven’t got C to try it out on, so I hope I’ve transcribed it correctly.
- If it hadn’t been for the postal strike I’d have sent it to David Wild
- first, so please bear with us if you find it is not completely correct.
- Ed.)
- 2.1
- • ANSI C Compiler − Mike Sherratt writesÉ “On a very fundamental noteÉ
- The manual is very terse. To compile the demo programs on the distribu
- tion diskette − Balls64, Sieve and Hello, heed the ReadMe file where it
- says ‘RMLoad the FP emulator etc i.e. RMload fpe240’. Get to the
- directory level ‘Bench’ then do:
- 2.1
- *CC −Arthur Sieve
- 2.1
- The spaces are significant, ‘−’ is minus. The Sieve source file is in
- sub-directory ‘c’. The executable file is now in sub-directory ‘p’.
- 2.1
- The program can be run from the star prompt by typing *Sieve. The ‘c.’
- prefix is embedded (for lack of a better word) in the compiler, so don’t
- try to create the prefix!! You are now on the way.
- 2.1
- This information came thanks to Watford Elec-tronics who used Acorn’s
- dealer hot-line for me.“
- 2.1
- (Because of the postal strike, this has been inserted by the Ed rather
- than sending it to David for checking, so hopefully it will be OK!?)
- 2.1
- • Formatting from programs − If you want to write a disc copier
- program, as we at Archive obviously did for copying the program discs,
- you have to find some way to get round the fact that *FORMAT asks for a
- keyboard confirmation. We did it by creating a file on the second drive
- that consisted of just <Y> and then called that is input from the
- program. Ingenious! But then we found the easy (undocumented) way of
- doing it:
- 2.1
- *FORMAT 0 D Y
- 2.1
- Simple if you know how!
- 2.1
- • Replacement 3.5“ disc drives − One reader had to replace his 3.5”
- drive and Acorn could only offer him the official second disc drive up-
- grade (which includes a new front facia which he didn’t need) so he
- bought an un-cased 3.5“ drive from Matmos Ltd (1 Church Street,
- Cuckfield, W.Sussex, RH17 5JZ, 0444−414484) for £59.50 + £3 carriage +
- VAT. This drive was almost a direct fit and only required some judicious
- filing of the button slot to complete the replacement.
- 2.1
- • Debugging ARM code listings − It is sometimes useful for non-ARM
- code specialists who want to type in ARM code program listings to have
- ‘wayside pointers’ as the code runs to help them debug the program and
- find out where they have made typing errors. Adding the occasional SWI
- &1nn (where nn is 30 to 39 for number 0 to 9) will print out these
- numbers as an indication of how far the program has got. (Better still,
- buy the monthly program disc!!! Ed.)
- 2.1
-
-
-
- • Mannisman Tally printers with serial interface − Pin connections
- are: pins 1, 4 and 6 linked together on the Archimedes, pin 3 to pin 3
- on the printer, pin 5 to pin 7 on the printer and pin 8 to both pins 11
- and 19 on the printer.
- 2.2
- • SWI “XOS...” − If you are using SWI “XOS...” commands so that you
- can handle your own errors, it will fail if you try to return
- immediately after this command to the calling routine. A dummy instruc
- tion needs to be inserted before the LDMFD instruction. Presumably a
- ‘feature’ of OS 1.2.
- 2.2
- • Problems with *Memory and *MemoryI − If you try to use these two
- commands in the debugger with the aim of dumping to printer, you will
- find that codes above &7F are not weeded out − they are all sent to the
- printer regardless which can cause all sorts of problems. The following
- program patch will solve the problem.
- 2.2
- 10 REM> DEBUGPCH
- 2.2
- 20 REM (C) JW^2 4th OCTOBER 1988
- 2.2
- 30 DIM A% &270C
- 2.2
- 40 OSCLI“SAVE Debugged_D 38486A0
- 2.2
- +270C“
- 2.2
- 50 OSCLI“LOAD Debugged_D ”+STR$~A%
- 2.2
- 60 FOR F=0 TO 3 STEP 3
- 2.2
- 70 P%=A%+&2230
- 2.2
- 80 [
- 2.2
- 90 OPT F
- 2.2
- 100 STMDB R13!,{r0-r9 ,R14}
- 2.2
- 110 .LOOP
- 2.2
- 120 LDRB R0,[R9],#1
- 2.2
- 130 CMP R0,#&7F
- 2.2
- 140 MOVHS R0,#&2E
- 2.2
- 150 CMP R0,#&1F
- 2.2
- 160 MOVLS R0,#&2E
- 2.2
- 170 SWI “XOS_WriteC”
- 2.2
- 180 BVS (LOOP+&35D)
- 2.2
- 190 SUBS R2,R2,#1
- 2.2
- 200 BNE LOOP
- 2.2
- 210 ]
- 2.2
- 220 NEXT
- 2.2
- 230 OSCLI“SAVE Debugged_D ”+STR$~A%+
- 2.2
- “ +270C”
- 2.2
- 240 OSCLI“SETTYPE Debugged_D &FFA”
- 2.2
- • EDIT’s disappearing cursor − If you use ‘options’ (<shift-f3>), you
- can change to a non-flashing cursor which is visible all the time, and
- you don’t have to change it each time you switch on the machine because
- EDIT stores its options in cmos ram. (Anyone know if there’s a way to
- re-program it to change the colour of the cursor?)
- 2.2
- • Putting sound through the monitor − It is perfectly possible to put
- the sound output from the 3.5mm stereo jack socket on the Archimedes
- through the amplifiers and speaker(s) of both the standard Acorn colour
- monitor and also the Phillips CM8833. All you need is a piece of twin
- screened cable (though actually I used ordinary thin three core mains
- flex which is OK for such a short length) and a 3.5 mm stereo jack plug
- (RS Components 274−284, £1.19 for two). The SCART plug connections are
- that pin 2 is right audio, 4 is earth and 6 is left audio. The pins
- should be numbered, but if not, 2, 4 and 6 are the first three pins
- along the long edge of the plug starting from the rectangular end.
- 2.2
- Three possible problems: firstly, you may find that the SCART plug has
- no pins at positions 2, 4 and 6 in which case you will have to buy a new
- plug (Tandy N¼ 15−7030, £1.49 each) and re-wire the other connections.
- Secondly, you may find that your cable doesn’t fit through the space
- available for the cable entry in the SCART plug − in which case, some
- judicious hacking of the plastic is needed. Finally, if the SCART plug
- has got pins at 2, 4 and 6, you may not be able to get at them to solder
- onto them. The solution here is to push each of the three pins back out
- through the body of the plug, solder them then push them back in again.
- It sounds easy but it’s not − there are little barbs the stop the pins
- being pushed out so you have to try to manipulate these and push the
- pins out at the same time − OK if you have three hands!
- 2.2
- The result − If the kids want to play Orion at full volume, they can,
- but I can turn it back down to a sensible volume when I use the system.
- 2.2
- • Stereo Speakers − I recently followed the suggestion in Archive 1.2,
- page 7 and purchased the amplified speakers (Model 40-1259E) from a
- local Tandy store. Initially I also purchased a couple of mains adaptors
- to power each unit but I found that this caused a considerable mains hum
- through both speakers. Upon returning to the Tandy store, I was advised
- that hum was caused by the mains adaptors not being earthed and, rather
- than spending more money on earthed mains adaptors, I exchanged the
- original adaptors for re-chargeable batteries which seem to work fine −
- there are also fewer wires trailing around! Whilst the stereo effect is
- very good, there is a problem in that there is no volume control fitted
- to these speakers; the suggestion from one of the staff at Tandy was to
- wire in two of their “L-Pad Speaker Level Controls”. Have any other
- Archive readers tried this or come up with a different solution?
- 2.2
- I have found that by amending the *Configure SoundDefault middle
- parameter to a lower value than 7, the volume can be reduced, this does
- provide some measure of control of sound volume; these parameters can
- take a value of 0 to 7 with each unit corresponding to one eighth of the
- overall maximum volume (see PRM, page 537).
- 2.2
- • Monitor problems (with solutions!) − Fujitsu and MAG 14C − The
- problem began on the MAG with a distortion of the top few lines of the
- display when in a multisync mode. The nature of this problem suggested
- that the monitor took several scan lines to lock onto the composite sync
- signal fed to it from the Archimedes. It was decided to feed it with
- separate vertical (frame) and horizontal (line) sync signals, which
- necessitated having to alter the preset links 10 and 11 within the
- Archimedes. At present this involves cutting a track (Lk10) and
- inserting a link (Lk11), since these links are not brought out on the
- normal Molex type links. Having done this modification you need a
- *Configure Sync 0 to set ‘Vertical sync only’ instead of ‘Composite
- sync’ to the monitor, otherwise the display rolls (indicating lost frame
- sync). This then cured the screen distortion problem but because of the
- way Acorn have put Composite/Vertical sync on the green signal, it kills
- the green output. With much trepidation this problem was overcome by
- disabling Acorn’s implementation of this signal by cutting pin 2 of IC
- 4. The result is a perfect picture.
- 2.2
- The Fujitsu monitor problem was much simpler and cured far easier after
- the troubles with the MAG.
- 2.2
- Although the picture quality was very good, there was an excess of
- green, even though R39 had been removed (see Archive 1.3 p8) It was
- originally thought that some internal adjustment of the green gun was
- needed but, with the experience of MAG monitor (and having tried it on
- the modified sync signal from the green output) the link changes proved
- unnecessary as the monitor worked perfectly happily with composite sync.
- Again the result was a perfect picture.
- 2.2
- Anyone wanting further information on this modi-fication can either
- contact Reg Dalton on 0742 487992 (less technical/Evenings only) or
- Steve Bass (who did all the work) on 0742 708028 (Daytime) or 0742
- 886622 (Evenings).
- 2.2
- • Screen saving from the SCML Teletext adaptor − R L Jefferies has
- worked out how to dump screens from the SCML Teletext Adaptor. (Pressing
- the ‘S’ command option gives an error but SCML have not replied to his
- questions about that yet.) He has utilised Robin Newman’s mode 7 to mode
- 9 utility as supplied on program disc 1.10. He copied this into the
- library directory on the Teletext disc and then created a mode 7 to mode
- 9 screensave module using Neil Strong’s “Printkey screen dump” (issues
- 1.10 p 45 and 1.11 p 7). Two lines need altering in the source program:
- 2.2
- line 840 should be changed to cmp r0,#83 and line 920 should be equs
- “M7M9 screensave scr<file>”
- 2.2
- Note that you should *SETEVAL file XX before you load the “S” key module
- and before executing the Teletext module. One small niggle is that Robin
- Newman’s module returns with the cursor ON. Is there an easy way to get
- rid of this?
- 2.2
- • Bug in C − Karl Strickland writesÉ There appears to be a bug in the
- fgets() function in version 1.54A (latest public release) of ANSI C.
- Instead, use the function given below and declare it using
- 2.2
- char *xfgets (char*,int,FILE*);
- 2.2
- We have to use xfgets (as opposed to fgets) because the linker gets
- confused if it finds the same function declared twice.
- 2.2
- char* xfgets (char* a,int b,FILE *s)
- 2.2
- {2 .2
- int c,d;
- 2.2
- *a=NULL; /* Must include STDIO.H */
- 2.2
- for (c=0;c<b;c++) {2 .2
- d=fgetc(s);
- 2.2
- if (d==EOF)
- 2.2
- return NULL;
- 2.2
- else
- 2.2
- if (d==13)
- 2.2
- return a;
- 2.2
- else
- 2.2
- strncat(a,(char*)&d,1);
- 2.2
- }
- 2.2
- return a;
- 2.2
- }
- 2.2
- • A hint for Twin from Bj¿rn Fl¿tten − When using Twin to edit large
- BASIC programs you can easily run out of memory. (Twin complains by
- hanging up the computer when called.) This is because of the inconveni
- ent way Twin is called from BASIC. Because Twin works on ASCII files,
- BASIC has to expand the current program from tokenised form to ASCII.
- This copy is placed on top of the BASIC program and is maybe 20-30%
- larger than the original. Then Twin is called and makes a new copy of
- the program which it places on top of itself. This means that an
- unnecessary lot of memory is used.
- 2.2
- One solution is to let Twin run from the address of PAGE. This works
- because Twin is not loaded into memory before the BASIC program is
- expanded. However, you will have to ensure that the BASIC program is
- bigger than Twin, if not, Twin will be loaded over the expanded version
- of your program.
- 2.2
- (This unfortunately makes the problem of Twin not releasing some vectors
- worse. This means that these vectors will point into the middle of your
- BASIC program after exiting from Twin. Use reset after exiting to BASIC
- and then OLD, to cure this.)
- 2.2
- • Problems with (Master) EDIT − If you get rubbish when you load up
- the EDIT ROM image from the BBC Master into the 6502 emulator, try
- loading it with:
- 2.2
- *65arthur
- 2.2
- *GO F800
- 2.2
- *EDIT
- 2.2
- • From Arthur to BASIC − If you are in the Arthur supervisor and you
- type *Progname where Progname is a BASIC program, it will run the
- program and drop you back out into the supervisor (equivalent to *BASIC
- −chain Progname). However, if you *LOAD Progname, it switches to BASIC,
- loads the program and gives you back control with a ‘>’ prompt −
- equivalent to *BASIC −load Progname but shorter to type and certainly
- easier than *BASIC followed by LOAD “Progname”. If you do a *SHOW, you
- will see the filetype definitions which make sense of it all.
- 2.2
- • Sprites and Sprite Commands − Paul White-horn writesÉ The Sprite
- Editor on the Welcome disc does not work properly being unable to create
- masked sprites (those with a transparent back-ground) or to save shades
- of colour that have been set up in the various edit modes. For many
- board style games this is not an insuperable difficulty and for chess
- and checkers, mode 1 creates reasonably detailed sprites in red, yellow,
- black and white.
- 2.2
- The simplest way of getting your own sprites from the Welcome disc onto
- your game or program disc is to *SNEW to wipe out anything that can be
- called a sprite in RAM, *SLOAD (by name or number) your sprite or sprite
- file into the machine from the Welcome disc (you don’t need to be in the
- Sprite Editor to do this), take out the Welcome disc, insert your game
- disc, *MOUNT it and *SSAVE (name) the contents of the machine’s RAM.
- Whatever sprites you have in RAM at this point will all go into a file
- created and named by the *SSAVE command and will be placed on your own
- disc.
- 2.2
- To check that they are all safely installed on your game disc *SNEW
- again (to clear RAM) and *SLOAD (name) the sprite(s) you have just
- *SSAVE’d on your disc. Now typing *SLIST will bring up a list of ALL the
- sprites in RAM which should correspond to the ones you have just
- transferred from the Welcome disc. At this point you can rename the
- sprites you see listed before you but the syntax for the *SRENAME
- command is not as it appears in the User Guide. Type *SRENAME (oldname)
- (newname) without commas or other punctuation marks separating the two
- names and without any quote marks round the names. This renames sprites
- in RAM and if you want these new names preserved on your disc then they
- must be *SSAVE’d collectively back to disc and you can save them with a
- different file name if you wish.
- 2.2
- *SDELETE (name) deletes a sprite in RAM whereas *DELETE (name) deletes a
- sprite (or file of sprites) on disc. Having weeded out sprites you don’t
- require with *SDELETE it is best to *SSAVE those you do need (possibly
- with a new file name) and *SNEW to clear RAM before proceeding further.
- This way you will not have rogue sprites lurking in RAM or in files on
- your disc where they may be called by default if they have the same name
- or number as the new ones.
- 2.2
- To create files of sprites from different sources you can use *SMERGE
- which merges a sprite (or file of same) from disc with those already
- installed in RAM. Those coming from disc have priority so if you have
- two sprites with the same name or number, the one on the disc will
- overpower its namesake in RAM. This command seems a little haphazard on
- my 310 especially with sprites which are numbered and occasionally
- several tries are needed to make it happen as required.
- 2.2
- If you intend to choose sprites during the course of your game as a
- consequence of numerical operations then it is necessary to use numbers
- as names so that they can be called with the VDU command. The VDU call
- takes variables with a range between 0 and 255 so make sure your sprites
- don’t exceed this range.
- 2.2
- *SINFO prints the size of the sprite workspace and *SCOPY (oldname)
- (newname) copies the named sprite. *SGET picks up a portion of the
- screen as a sprite but for details of this see the User Guide.
- 2.2
- • EMR SoundSynth + CC ROM podule − There has been a problem of a clash
- between EMR’s SoundSynth and Computer Concepts’ ROM/RAM podule in that
- after using SoundSynth, the contents of the RAM filing system disap
- peared! (Fortunately, I had a recent backup!) EMR have been looking into
- the problem and have sorted it out. If you have had the same problem,
- return your disc to EMR and they will replace it “in most cases, free of
- charge”.
- 2.2
- • Loading palette files − Here is a simple BASIC program to load a
- “!Palette” file and set the palette up. The file format really is
- simple: 3 bytes are stored for each colour − red, green and blue
- respectively. This group of 3 bytes is repeated for all 20 colours saved
- − logical colours 0-15, the border, and mouse colours 1-3.
- 2.2
- 10 REM >TestPal
- 2.2
- 20 REM ===> To demonstrate reading a
- 2.2
- 30 REM ===> Desktop !Palette file
- 2.2
- 40 REM By John Smith, September 1988
- 2.2
- 50 REM
- 2.2
- 60 MODE 12 :REM Any 16-colour mode
- 2.2
- will do.
- 2.2
- 70 :
- 2.2
- 80 REM Put all 16 colours on screen,
- 2.2
- and a 2-colour mouse pointer.
- 2.2
- 90 FOR x%=0 TO 15
- 2.2
- 100 GCOL x%
- 2.2
- 110 RECTANGLE FILL x%*80,0,80,1023
- 2.2
- 120 NEXT
- 2.2
- 130 MOUSE ON
- 2.2
- 140 *POINTER 1
- 2.2
- 150 PRINTTAB(0,0);“Now press a key to
- 2.2
- load the ‘!Palette’ file“
- 2.2
- 160 dummy=GET
- 2.2
- 170 :
- 2.2
- 180 REM Now load the palette file.
- 2.2
- 190 handle%=OPENIN “!Palette”
- 2.2
- 200 REM Do “standard” colours first.
- 2.2
- 210 FOR loop%=0 TO 15
- 2.2
- 220 COLOUR loop%, BGET#handle%,
- 2.2
- BGET#handle%, BGET#handle%
- 2.2
- 230 NEXT
- 2.2
- 240 :
- 2.2
- 250 REM Screen Border
- 2.2
- 260 VDU 19,0,24, BGET#handle%,
- 2.2
- BGET#handle%, BGET#handle%
- 2.2
- 270 :
- 2.2
- 280 REM Mouse colour 1
- 2.2
- 290 MOUSE COLOUR 1, BGET#handle%,
- 2.2
- BGET#handle%, BGET#handle%
- 2.2
- 300 MOUSE COLOUR 2, BGET#handle%,
- 2.2
- BGET#handle%, BGET#handle%
- 2.2
- 310 MOUSE COLOUR 3, BGET#handle%,
- 2.2
- BGET#handle%, BGET#handle%
- 2.2
- 320 CLOSE#handle%
- 2.2
- • InterWord to ArcWriter − if you have InterWord files from BBC days
- and want to transfer them to ArcWriter, look in the First Word Plus
- hints below where the transfer to FWP is achieved by transferring first
- to ArcWriter.
- 2.2
- • Double-precision to BBC BASIC − following on from the floating point
- BCD to BBC BASIC conversion program published in Archive 1.11, page 32,
- Carl Cepurneek has done a routine which converts from the more efficient
- Double-precision reals to BBC BASIC.
- 2.2
- 10 REM>Carl - FPU number conversion
- 2.2
- 20 REM BBC BASIC V to FPU memory
- 2.2
- 30 REM format conversions
- 2.2
- 40 REM Packed decimal print routine
- 2.2
- 50
- 2.2
- 60 REM Carl P.Cepurneek 26 Clyde St
- 2.2
- 70 REM Parkside, S.A.5063,Australia
- 2.2
- 100
- 2.2
- 110 DEFPROCcvt_s(bbc,adr) :REM from
- 2.2
- BBC real at |bbc to FP at adr
- 2.2
- 120 LOCAL exp%,sign%,mant%
- 2.2
- 130 !adr=0:adr!4=0 :REM clear
- 2.2
- 140 IF |bbc=0:!adr=0:ENDPROC
- 2.2
- 150 exp%=(bbc?4)-&80 :REM get
- 2.2
- adjusted exponent
- 2.2
- 160 IFexp%>0 exp%=exp%+126 ELSE exp%=
- 2.2
- 126-ABS(exp%)
- 2.2
- 170 !adr=!adr OR exp%<<23:REM set
- 2.2
- exponent bits
- 2.2
- 180 sign%=!bbc AND &80000000
- 2.2
- :REM isolate sign bit
- 2.2
- 190 !adr=!adr OR sign%:REM set sign bit
- 2.2
- 200 mant%=!bbc AND &7FFFFFFF :REM
- 2.2
- clear neg bit if set
- 2.2
- 210 !adr=!adr OR mant%>>>8:REM set
- 2.2
- mantissa
- 2.2
- 220 ENDPROC
- 2.2
- 230
- 2.2
- 240 DEFPROCcvt_d(bbc,adr):REM from
- 2.2
- real at address bbc
- 2.2
- 250 LOCAL exp%,sign%,mant%
- 2.2
- 260 !adr=0:adr!4=0
- 2.2
- 270 IF |bbc=0:!adr=0:ENDPROC
- 2.2
- 280 exp%=(bbc?4)-&80 :REM get
- 2.2
- adjusted bbc exponent
- 2.2
- 290 IF exp%>0 exp%=exp%+1022 ELSE exp%
- 2.2
- =1022-ABS(exp%)
- 2.2
- 300 !adr=!adr OR exp%<<20
- 2.2
- 310 sign%=!bbc AND &80000000
- 2.2
- :REM isolate sign bit
- 2.2
- 320 !adr=!adr OR sign%:REM set sign bit
- 2.2
- 330 mant%=!bbc AND &7FFFFFFF
- 2.2
- :REM clear sign bit set
- 2.2
- 340 !adr=!adr OR mant%>>>11 :REM set
- 2.2
- mantissa msbits
- 2.2
- 350 mant%=mant%<<21 :REM shift over
- 2.2
- low bits
- 2.2
- 360 adr!4=adr!4 OR mant% :REM set
- 2.2
- mantissa lsbits
- 2.2
- 370 ENDPROC
- 2.2
- 380
- 2.2
- 390 DEFPROCcvt_e(bbc,adr):REM from
- 2.2
- BBC real at |bbc
- 2.2
- 400 LOCAL exp%,sign%,mant%
- 2.2
- 410 !adr=0:adr!4=0:adr!8=0 :REM clear
- 2.2
- destination
- 2.2
- 420 IF |bbc=0:!adr=0:ENDPROC
- 2.2
- 430 exp%=(bbc?4)-&80 :REM get
- 2.2
- adjusted exponent
- 2.2
- 440 IFexp%>0 exp%=exp%+16382 ELSE
- 2.2
- exp%=16382-ABS(exp%)
- 2.2
- 450 !adr=!adr OR exp% :REM set
- 2.2
- exponent bits
- 2.2
- 460 sign%=!bbc AND &80000000
- 2.2
- :REM isolate sign bit
- 2.2
- 470 !adr=!adr OR sign%:REM set sign bit
- 2.2
- 480 mant%=!bbc OR &80000000 :REM set
- 2.2
- top bit (J)
- 2.2
- 490 adr!4=adr!4 OR mant% :REM set
- 2.2
- mantissa
- 2.2
- 500 ENDPROC
- 2.2
- 510
- 2.2
- 520 DEFFNprint_packed(base%)
- 2.2
- 530 LOCAL ms%,ms$,es%,es$,m%,s%
- 2.2
- 540 @%=&00001
- 2.2
- 550 m%=(!base% AND &80000000)>>>31
- 2.2
- 560 IF m%=0 ms$=“+” ELSE ms$=“-”
- 2.2
- 570 PRINT ms$;
- 2.2
- 580 m%=(!base% AND &F<<8) >>>8
- 2.2
- 590 PRINT m%;“.”;
- 2.2
- 600 FOR s%=4 TO 0 STEP -4
- 2.2
- 610 m%=(!base% AND &F<<s%) >>>s%
- 2.2
- 620 PRINT m%;
- 2.2
- 630 NEXT
- 2.2
- 640 FOR w%=4 TO 8 STEP 4
- 2.2
- 650 FOR s%=28 TO 0 STEP -4
- 2.2
- 660 m%=(w%!base% AND &F<<s%) >>>s%
- 2.2
- 670 PRINT m%;
- 2.2
- 680 NEXT
- 2.2
- 690 NEXT
- 2.2
- 700 e%=(!base% AND &40000000)>>>30
- 2.2
- 710 IF e%=0 es$=“+” ELSE es$=“-”
- 2.2
- 720 PRINT“ E”;es$;
- 2.2
- 730 FOR s%=24 TO 12 STEP -4
- 2.2
- 740 m%=(!base% AND &F<<s%) >>>s%
- 2.2
- 750 PRINT m%;
- 2.2
- 760 NEXT
- 2.2
- 770 =“”
- 2.2
- • Using 40-track drives − If you have a 40 track 5.25“ drive as used
- on PC clones, you can use it under the PC emulator but, in native
- Archimedes ADFS modes you will have problems. To get round it, format
- the disc as normal then, when it goes beyond “Formatting 40” and starts
- clicking as it reaches the end of the travel on the head movement, press
- <ctrl-break>. The disc is now formatted, but the free space map and
- catalogue have not been installed. This can be done with:
- 2.2
- DIM buffer% 3072
- 2.2
- SYS“ADFS_DiscOp”,,1,0,buffer%,3072
- 2.2
- SYS“ADFS_DiscOp”,,2,1,buffer%,3072
- 2.2
- You try this entirely at your own risk! Ed.
- 2.2
- • Problems with ON ERROR LOCAL − John Smith says he thinks he’s
- discovered a problem when using LOCAL ERROR with ON ERROR LOCAL. It
- occurs because ON ERROR LOCAL stores the exact position in the program
- structure. The User Guide mentions this with respect to REPEAT...UNTIL
- and WHILE...ENDWHILE loops, but it also seems to apply to IF..THEN...
- ELSE...ENDIF constructs. Once the error handler has done its job,
- processing must continue at the same part in the structure in which the
- original error happened. For example,
- 2.2
- 1000 DEF PROCtest(arg)
- 2.2
- 1010 LOCAL ERROR
- 2.2
- 1020 ON ERROR LOCAL PRINT “Can’t
- 2.2
- divide by zero − try again“
- 2.2
- 1030 IF arg < 100 THEN
- 2.2
- 1040 INPUT value
- 2.2
- 1050 PRINT arg/value
- 2.2
- 1060 ENDIF
- 2.2
- 1070 ENDPROC
- 2.2
- If a value of zero is input, line 1050 will error. As written, the above
- code will then print a warning message and effectively execute a “GOTO
- 1030”. At this point, the error handler stack is corrupted. The program
- may appear to work without problem, but if any future error should
- occur, the program may produce a run-time error something like “Attempt
- to exit from badly nested error handler” or something similar. Occasion
- ally, I have even managed to produce the dreaded “Address Exception
- error”!
- 2.2
- The solution to this problem is quite simple − place the code that could
- error together with the relevant error handler in a separate PROCedure.
- I have not (yet) had any problems doing this:
- 2.2
- 1000 DEF PROCtest(arg)
- 2.2
- 1030 IF arg < 100 THEN
- 2.2
- 1050 PROCprint(arg)
- 2.2
- 1060 ENDIF
- 2.2
- 1070 ENDPROC
- 2.2
- 2000 DEF PROCprint(arg)
- 2.2
- 2010 LOCAL ERROR
- 2.2
- 2020 ON ERROR LOCAL PRINT “Can’t
- 2.2
- divide by zero − try again“
- 2.2
- 2040 INPUT value
- 2.2
- 2050 PRINT arg/value
- 2.2
- 2060 ENDPROC
- 2.2
- First Word Plus Hints & Tips
- 2.2
- Here are a few of the many contributions we’ve been sent about First
- Word Plus. We’ve got a file of about ten other contributions, so we do
- need someone who knows FWP, has a reasonable skill at writing and has a
- bit of spare time to field the enquiries, assimilate the hints and tips
- and regurgitate something to us each month.
- 2.2
- • First Word Plus startup − If you are getting fed up of starting
- First Word Plus and finding yourself in lower case, you could *Configure
- Nocaps, but that is a nuisance if you do programming and want to start
- up in Shiftcaps. The solution is to extend the boot file, adding
- *FX202,48.
- 2.2
- • LQ850 with sheetfeeder − If you’re having problems with this
- combination, Acorn say that you should edit the printer driver so that
- entry 4 (vertical tab) is commented out by pre-fixing it with a “*”.
- Also, note that if your printer is doing auto-linefeeds, you should also
- edit option 1 to remove the line feed value (A) from the line to leave
- just the carriage return (D).
- 2.2
- • Star LC10 − (ref. the Help enquiry we had last month) David Francis
- says he uses the Epson FX driver successfully with this printer. He has
- the dip switches set as follows: 1-1 to 1-8 and 2-1 and 2-4 are all ON
- and 2-2 and 2-3 are OFF. The Archimedes is configured to IGNORE 0. With
- this setting, the printer prints out the test, including the graphics
- part. As set, it also prints under <ctrl-B> as well as with Artisan.
- He’s also tried to change the hex file to get it to work with quadruple
- size, but hasn’t succeeded yet.
- 2.2
- • Printer drivers − In designing my own printer drivers for both the
- Citizen 120D and Star LC-10 printers, I have not come across the problem
- noted, but mine were modified from the Epson LX printer driver. There
- was an item on the Letters section (page 128) of October’s issue of the
- Micro User referring to an apparently similar problem, which the writer
- cured by “commenting out” line &20 of the printer driver. I must admit
- that I cannot understand why this should have any effect, but in case it
- benefits other Archive readers, I detail below those elements of the
- printer drivers I have set up relating to form or line feeds (refer also
- to page 227 of the First Word Plus manual):
- 2.2
- 1D, A − Linefeed (N.B. carriage return & linefeed)
- 2.2
- 1E, C − Formfeed (N.B. &C = 12 as mentioned in the article)
- 2.2
- 1F, 12 − Horizontal initialisation (N.B. appears to cancel condensed)
- 2.2
- 20, 1B, 52, 0 − Vertical initialisation (N.B. appears to select USA
- characters)
- 2.2
- A further possible cause of problems may be to do with the printer’s dip
- switches, on page 218 of the First Word Plus manual it does state that:
- 2.2
- Skip over perforation must be DISABLED and Auto linefeed must be
- DISABLED
- 2.2
- • Printer Drivers with extended characters − Ted Peat has sent in
- various bits for FWP which we’ve put on the program disc.
- 2.2
- The printer drivers were written to permit both the Panasonic KXP-1081
- and the Diablo-ecs printer to access the same set of extended characters
- (those with codes from 160 to 255). The character set of the Archimedes
- is also modified to suit.
- 2.2
- The Diablo-ecs printers use a daisy wheel with a double row of charac
- ters, giving 192 in all. The usual ASCII set is supplemented by
- characters with codes >128. The description given here applies to the
- ‘scientific’ wheel containing Greek and mathematical symbols. The KXP-
- 1081 can be switched to emulate the IBM Graphics set, which also
- includes some Greek letters and some (but not all) useful mathematical
- symbols, again with codes >128. There are also some table-drawing
- symbols which are replicated several times over, and accented characters
- not needed for this application. Since up to 40 user-defined characters
- are possible, these redundant characters can be replaced. This then
- offers the opportunity to produce matched sets of symbols for the two
- printers and the Archimedes.
- 2.2
- I decided to include the complete Greek alphabet, which involves
- duplication of some upper case letters, and (for the KXP-1081 only), one
- set of table-drawing symbols. Two other symbols were added: an overline
- and backspace. Backspace is entered into the text as a large leftward
- pointing arrow-head (stored as character 161), but interpreted by the
- printer as a true backspace. One consequence of this, of course, is that
- text loses its WYSIWYG property. The advantage, however, is that both
- superscripts and subscripts can be attached to the same symbol, and the
- overline can be used to write a bar above a character. Since these
- peculiar needs are only likely within equations, the loss of on-screen
- text formatting is a minor irritation. Another complication was that the
- Diablo lost its left margin alignment after a backspace, when printing
- in the reverse direction. This option had to be switched off, slowing
- the printer down.
- 2.2
- There were two options for changing the Archi-medes character set. One
- was to change the Archi-medes font, to match that desired as far as
- possible, and then to redefine characters for the few changes needed.
- The most useful character set is that described as BFONT on p. 458 of
- the User Guide. To access this you need to *Configure Country Master.
- The second way: which is the one I adopted was to redefine all charac
- ters from 160 to 255. To do this I added a section to the 1st Word +
- loading program (Library.1stWord+ on the program disc).
- 2.2
- Once this was done, mapping the new character set to the Diablo’s set
- was easy: merely rewrite one of the provided Diablo Printer Drivers (in
- the hex dir-ectory) by changing the character translation table which
- forms the last part of the printer driver text.
- 2.2
- The KXP-1081 offered more complications. Firstly, it is necessary to
- download the redefined character set before loading 1stWordPlus. Another
- addition to the loader program, together with a user prompt, took care
- of this. Secondly, switching this printer to its IBM Graphics mode
- caused comp-lications with graphics printing: all the linefeeds became
- doubled! The printer driver codes were therefore expanded so that for
- each character the printer was switched into IBM Graphics set, the
- character printed, and then switched back to the Epson mode. This sends
- seven characters to the printer for every one actually printed. Since
- these are only occasional characters, the loss of efficiency is not
- important
- 2.2
- • Printer Driver Generator − John Smith has sent in, not another
- printer driver, but a printer driver generator program. He’s given it to
- be used as public domain software, so we have put it on Shareware disc
- number 2. For best results, copy the PDG program onto a copy of the 1st
- Word Plus Utilities disk before running it.
- 2.2
- • Tabs and underlining − This one is for dum-dums like me, writes
- David Crofts, who learn word-processing at the finger tip.
- 2.2
- Underlining − I spent many happy, but frustrating, hours fiddling with
- forms to try to sort out under-lining in intervening spaces, till I
- discovered that the hated TAB holds the key! (I expect this is obvious
- for lots of people, but hold on to the yawns.) I was used to VIEW where
- the TAB key worked “prop-erly”. (It inserted a TAB character, whatever
- that was, but it meant that a change in ruler meant a change in layout.)
- In FWP the Indent key does this job, except that it puts in a special
- stretch space which is fixed in spite of further ruler alterations.
- Because of this I had ignored TAB as useless.
- 2.2
- TAB inserts a set of normal spaces which have to be deleted individually
- − a nuisance if you are experi-menting with documents. But − you can
- underline TAB spaces, whereas you can’t underline Indents! And therein
- lies the hint!
- 2.2
- By all means use indents to facilitate experi-mentation but, in the end,
- TABs are preferable, where you wish subsequently to underline. If you
- have used Indents, then all is not lost, though fiddle is the name of
- the game. Turn off Insert, and turn on Underline (f2), then fill in the
- spaces with Fixed Space (f10). Then use the mouse or keyboard to
- underline the words.
- 2.2
- e.g. Say you have a form, the head of which is:
- 2.2
- Name Address Telephone
- 2.2
- the above is the result using Indent, but using TAB you will achieve:
- 2.2
- NameÊÊÊÊÊÊAddressÊÊÊÊÊÊTelephoneÊÊÊÊÊ
- 2.2
- Placing a TAB at the appropriate point near the end of the ruler allows
- the line to be printed to the same length on each line.
- 2.2
- • InterWord to FWP via ArcWriter − This is how Ian Barnes achieves the
- transfer:
- 2.2
- 1. Transfer file from IW to AW_DOC directory
- 2.2
- 2. Run ArcWriter
- 2.2
- 3. Press <select> for filing menu
- 2.2
- 4. Highlight file x
- 2.2
- 5. Press <menu>, select import, flowing, return
- 2.2
- 6. Press <select> for filing menu
- 2.2
- 7. Press <menu> and select export plus new name
- 2.2
- 8. Transfer file to 1WP.doc directory
- 2.2
- 9. Run 1WP and open file
- 2.2
- 10. Select WPmode from edit menu
- 2.2
- 11. Tidy up text by deleting control characters, changing any odd
- letters and inserting returns at line ends to leave a presentable result
- 2.2
- • Files from ArcWriter − The article by Brian Carroll in July’s issue
- of Archive under the heading of “First Word Plus Notes” (pages 21-23)
- was very useful together with the program ConvertWP (also on that
- month’s Magazine disc). Although designed to convert Wordwise Plus
- files, the program works quite well with ArcWriter as well. Briefly the
- procedure to convert ArcWriter files into First Word Plus is as follows:
- 2.2
- 1. From the ‘Filing’ menu in ArcWriter select the ‘Export’ option to
- save the file (e.g. under the name “testARC”) and then exit from
- ArcWriter.
- 2.2
- 2. Load the ConvertWP program and enter the appropriate Source
- (“testARC”) and Destination (e.g. “test1WP”) filenames.
- 2.2
- 3. Load First Word Plus and then the converted file (“test1WP”).
- 2.2
- 4. Select ‘WPmode on’ from the Edit menu.
- 2.2
- 5. Reformat the whole text by using the Style menu to ‘Reformat’ the
- ‘Whole document’.
- 2.2
- Odd words may sometimes get missed out of the converted text, possibly
- due to the fact that this data was preceded by “tabs” in ArcWriter.
- 2.2
-
- • Fontsize problems? (Ed. got caught out on this one) With Clares’
- Sound and Graphics demo, when you start it up, it says it needs 44k of
- fontsize, so I tried to re-configure with fontsize 6 on the basis that 6
- times 8k = 48k. Now, as I’m sure you will all realise, that didn’t work
- because fontsize is specified in 4k chunks, not 8k or 32k.
- • Logotron printer dump − Logotron told one of our readers that there
- is no printer dump for their Archimedes Logo. However, our Printkey Dump
- program (issue 1.10, page 45) works fine.
- • RX80 dumps for Artisan − Clares originally said that Artisan
- wouldn’t dump pictures on an Epson RX-80 and that the FX-80 was the
- ‘base-line’ printer as far as they were concerned. How-ever, they have
- since produced a ‘help-sheet’ of the pokes needed to convert the dump to
- an RX-80.
- 2.3
- The gist of the change is as follows;
- 2.3
- If your printer will support CRT mode graphics, (ESC “*”,4) then use it.
- If not then use ESC “K” for normal single density bit image mode, but
- CRT mode gives a much better image and less distortion.
- 2.3
- *LOAD ART6 10000
- 2.3
- !&10EC5=&042A1B for CRT or =&4B1B00 for single density
- 2.3
- *SAVE ART6 10000 +12FF
- 2.3
- *SETTYPE ART6 &FF8
- 2.3
- The resultant print produces oval circles(!) but can be triggered from
- Artisan.
- 2.3
- • Monochrome displays on the 440 − Brian Cowan writes, I was lucky
- enough to have one of the first release of 440’s which I used with one
- of the Acorn colour monitors. I know that the resolution of these
- monitors is nothing fantastic, but it seemed sensible to purchase them
- together; at that stage I was not sure what connection standards were
- used.
- 2.3
- About six months later I had reason to use an ordinary mono monitor on
- the 440, and imagine my horror when I found it did not work. Ordinarily
- I would have sent the computer back to the supplier to have it fixed
- under warranty. However, the machine was in constant use so we decided
- to live with it, using only a colour monitor.
- 2.3
- I now discover that there is nothing wrong with the 440!! When these
- machines leave the factory they are not configured to drive standard
- resolution mono monitors, they are set up for high res monitors. Inside
- the case, on the PCB are some jumpers that must be set according to what
- sort of monochrome monitor you want to drive.
- 2.3
- At the north-west corner of the board is a plug called PL2. I think this
- does nothing except carry some pin connector links. A little further
- southwards on the board are some pins labeled LK13 and LK14. If you want
- to drive a standard resolution monochrome monitor, you must take two
- links from PL2 and place one on LK13 and the other on LK14.
- 2.3
- Connection to a monochrome monitor on 440 machines is through two BNC
- sockets on the back panel. One socket is marked SYNC and the other is
- labeled MONO. For high resolution, both of these are used but for
- standard resolution only the SYNC socket is used. Since this is a BNC
- socket rather than the phono socket on the 300 series, you will have to
- make up or purchase a special lead or a converter.
- 2.3
- For those of you contemplating the purchase of a multisync monitor for
- those extra modes etc. you will be happy to hear that the Archimedes
- connect-ions are the same as those on PC machines. This means that if
- the monitor comes with a lead, it will probably be suitable for the
- Archimedes. This is certainly true for the Taxans that I use. Inciden
- tally, concerning the Taxans, some have rather dull pictures. Has anyone
- tried brightening them up?
- 2.3
- • Desktop calculator − “The calculator on my desktop doesn’t respond
- to the keyboard whereas your review of Arthur 1.2 said it did.” So I
- tried to work the calculator with the keyboard keys myself and it didn’t
- seem to work. Then I realised that it won’t respond until you enable it
- for keyboard input by clicking on it with the mouse. The top bar then
- goes red and it’s ready to take input from either the main keyboard or
- the numeric pad, delete being the equivalent of clear. Easy when you
- know how.
- 2.3
- • Conditional booting. If you have a boot file in the RFS on battery-
- backed RAM, you may want to do some things when you first switch on but
- not every time you do <ctrl-break>. You can achieve this by making it
- conditional on the monotonic timer, i.e. the timer which is initialised
- at switch-on and not reset in any other way. To read this timer, use SYS
- &42 TO T% where T% then gives the time in centiseconds so you can say
- that IF T%<200 (say) then do the switch-on bits and pieces ELSE do the
- <ctrl-break> things.
- 2.3
- • CharDes fonts − If you have fonts produced by CharDes, you can
- convert them for use on the Archimedes as follows. Enter 65Arthur and
- type
- 2.3
- *spool thin2
- 2.3
- *thin
- 2.3
- *spool
- 2.3
- where thin is the name of the original font file and thin2 is going to
- be the new file. Then use a text editor (such as the Master128’s “Edit”)
- and edit out the first and last line (i.e. the *thin and *spool). Then
- resave as thin2 and settype it as &FF7 (BBC font). When you need it,
- just type *thin2. If you do a *SHOW, you will see that the load and run
- actions of a file type &FF7 is to *PRINT it − which is just what you
- want.
- 2.3
- • Command files − In order to disable vdu output during a command file
- e.g. the !boot file, try:
- 2.3
- *echo ||U
- 2.3
- ...
- 2.3
- ...
- 2.3
- *echo ||F
- 2.3
- Two string escape characters are needed (as I’ve explained in a previous
- tip) so that the final command executed is *echo |U
- 2.3
- i.e. <ctrl-U>. This issues a VDU 21 which disables vdu output until a
- VDU 6 is issued <ctrl-F>.
- 2.3
- This is similar to the ECHO OFF command of MS-DOS. Indeed if the string
- used is:
- 2.3
- *echo ||U|H|Hoff
- 2.3
- then all that is visible is “echo off” which explains why nothing else
- is visible to the user and also hides the control code sequence used.
- The “compiled” string is then *echo |U<8><8>off. One side effect is that
- two line feeds will occur so if this is undesirable a couple of reverse
- line feeds can be incorporated with
- 2.3
- *echo ||U|H|Hoff|K|K
- 2.3
- Note that the use of single string escape characters means that the
- cursor control codes will have immediate effect whereas the <ctrl-U>
- will only be issued when the echo command is executed.
- 2.3
- The double string escape characters are only needed for use with *Build,
- if a text editor is used then only single characters are needed but the
- control codes must be input directly, e.g. so they appear as inverse
- video in TWIN, for those cases where the affect is immediate.
- 2.3
- (Sorry if this sounds a bit confusing but the difference between two and
- one |’s, and when to use which, is an entire discussion point on its
- own. Perhaps this could be a short article − it is important whenever
- command files issue messages etc.) Clifford Hoggarth.
- 2.3
- • Quick *COPYing and *WIPEing − When you enter a wild card *COPY or
- *WIPE on a list of files such as TEST1, TEST2, TEST3, etc. you are
- presented with a list of options at the end of the copy or wipe
- statement
- 2.3
- *COPY :0.TEST* :1.TEST*
- 2.3
- Copy file adfs::0.TEST1 as adfs::1.
- 2.3
- TEST1 (Y/N/Q/A)?
- 2.3
- etc.
- 2.3
- The option Y, N, Q and A mean the following :-
- 2.3
- Y − means copy that file
- 2.3
- N − means don’t copy that file
- 2.3
- Q − means quick copy all file with the wild card specification after and
- including that one with no further confirmation prompts
- 2.3
- A − means abort from copying
- 2.3
- The *WIPE option works in a similar manner but deleting.
- 2.3
- • Stereo Speakers − After reading the hint in Archive 1.2 about adding
- a pair of Tandy amplified speakers, I promptly rushed off ‘to town’.
- They had just run out of stock, because the £25 price-tag was a special
- offer. However Tandy were very helpful and ordered me a pair which
- arrived within a week and which at £29.95 are still excellent value.
- However, a set of alkaline batteries was quoted as £7.95!! Instead, a
- surplus old calculator mains adaptor and two power plugs (30p each from
- a local electronics shop) provided a cheaper source of power. If you
- don’t have a spare one, a new power supply from Rapid Electronics costs
- less than £4. The magic moment arrived and I switched on! The buzz from
- the speakers was horrific!, but soon drowned by mayhem and destruction
- from Zarch, which in turn was swamped by the dulcet tones of ‘her
- ladyship’ complaining from the other end of the house about the volume!
- 2.3
- Back to the drawing board − two capacitors, recovered from an old tape
- recorder smoothed the power supply output and banished the buzz. The
- solution to the lack of volume control was to add two potentiometers.
- Whilst I was at it, I decided to wire the volume controls into a socket,
- so that Zarch could be enjoyed at a reasonable volume late at night
- through a pair of personal stereo headphones as well as through speakers
- at a more civilised hour. An hour’s work, a couple of pounds and I now
- have glorious stereo sound, at a reasonable volume!
- 2.3
- The diagrams below show the set up. A twin pot could be used instead of
- two single ones, so that both speakers are controlled from one knob. Any
- value pot from 100 ohms up to about 4.7k ohms will work, but 100 ohms is
- ideal, though 470 ohm pots are easier to obtain. Logarithmic pots are
- best, but linear ones work fine and are again are easier to obtain. The
- big capacitor can be anywhere in the region shown (2500 microfarads/30V)
- − the small one takes out the higher frequencies and again its value
- (220 microfarads/16V) is not critical.
- 2.3
- It’s worth noting that the speakers cut off only after a minute or two
- if there is no sound being produced. Presumably there is a small
- capacitor inside which needs to run down first. Similarly, they need a
- certain minimum signal for a very short time in order for them to switch
- back on. David Kent
- 2.3
- • Ultra-cheap sound amplification − Maplin Electronics (0702−554161)
- have an amazing offer including a pair of walkman-type headphones AND a
- pair of monitor speakers for just £3.95! I don’t know how good they are,
- but at that price, you can’t go far wrong. (Oh, there’s a handling
- charge of 50p and a postage charge of 50p − still, it’s not bad.)
- 2.3
- • View “OC” Command − In View B3.0, one of the highlights can be set
- to 27 instead of the normal 128 for underline and 129 for emphasise. In
- doing this, commands may be made directly to the printer as in the
- Wordwise OC command. For example, to set highlight 1 to 27
- 2.3
- <Shift-f8> HT<return> 1 27 <return>
- 2.3
- On pressing <f4> (underline) the next character will be sent to the
- printer as a command, i.e. ShFn4x1(-x1) will turn on NLQ mode (on some
- Epson compatible printers). This system seems to work for most commands,
- but some commands need an ASCII ,1 so to get round this set highlight
- key 2 (emphasise) as 1 and type ShFn4wShFn5 (-x*) to turn on double
- height for example. This does have the disadvantage that things can’t be
- turned on and off in the same line as you have to set highlight 2 back
- to 0 to turn it off.
- 2.3
- • Two ARM Code Assembly Macros − (Richard Averill) − Here are two
- useful macros for use in the BASIC V ARM assembler. They both use the
- same method of loading 32-bit words into a specified register, which is
- detailed below:
- 2.3
- Originally, I had the idea that if I used the following piece of code:
- 2.3
- LDR <reg>, [PC, #-4] !
- 2.3
- EQUD <value>
- 2.3
- then the processor would load the value and jump on to the next
- instruction. However, what actually happens is that the value is loaded
- and the ARM tries to execute the value as an instruction. If the high-
- byte of the value is zero, then this will not cause a problem, but it is
- not advisable to use routines that are not totally water-tight.
- 2.3
- Here is the improved code:
- 2.3
- LDR <reg>, [PC]
- 2.3
- MOV PC, PC
- 2.3
- EQUD <value>
- 2.3
- which only takes one more word of code and works all the time. The MOV
- PC,PC is there to make sure that the ARM executes the instruction that
- is in the pipeline, and not the instruction in <value>.
- 2.3
- Using these ideas, I have developed two useful routines detailed below:
- 2.3
- DEF FNload(reg%, val%)
- 2.3
- [ OPT opt% AND &E
- 2.3
- LDR reg%, [PC]
- 2.3
- MOV PC, PC
- 2.3
- EQUD val%
- 2.3
- ] : =opt%
- 2.3
- DEF FNadr(reg%, adr%)
- 2.3
- [ OPT opt% AND &E
- 2.3
- FNload(reg%, adr%-P%-20)
- 2.3
- ADD reg%, PC, reg%
- 2.3
- ] : =opt%
- 2.3
- As you can see, the macros can be used as any other instruction in the
- assembler as such:
- 2.3
- MOV R0, #123
- 2.3
- FNload(1, &12345678)
- 2.3
- FNadr(2, pointer)
- 2.3
- SWI “OS_Anything”
- 2.3
- A demonstration program is given (on the program disc) to illustrate the
- use of these macros.
- 2.3
- • Running ViewPlot under 65Arthur − Richard Averill − Listed here are
- the changes needed to make ViewPlot ‘harness the power of the Archi
- medes!’. They will tidy the programs up, allowing ViewPlot to run in any
- mode and to print and save screens. A *Exec file of these changes is
- provided on the monthly disc.
- 2.3
- To use this file, transfer the ViewPlot disc onto ADFS into a directory
- such as ‘ViewPlot’. You can either create a text file of these commands
- (with *Build or a text editor) or you can type the commands in yourself.
- Either way, you should make sure that you are in the ViewPlot directory
- when you try to convert the programs.
- 2.3
- *|Running ViewPlot under 65Arthur.
- 2.3
- (C) Richard Averill, 1988.
- 2.3
- *BASIC
- 2.3
- LOAD “ViewPlt”
- 2.3
- 390
- 2.3
- SAVE “ViewPlt”
- 2.3
- LOAD “V__D”
- 2.3
- 730 IF M=248 OSCLI(“Screensave Image”)
- 2.3
- :PROC2(R%)
- 2.3
- SAVE “V__D”
- 2.3
- LOAD “V__M”
- 2.3
- 1140 DEF PROC0:VDU 28,0,23,39,5:CLS
- 2.3
- 1190 REPEAT
- 2.3
- 1200 INPUT “Enter screen mode (not
- 2.3
- text) ? “ M%
- 2.3
- 1210 UNTIL FNcheckmode(M%)=TRUE
- 2.3
- DELETE 1220,1290
- 2.3
- 3000 DEF FNcheckmode(mode%)
- 2.3
- 3010 LOCAL col$,ok%
- 2.3
- 3020 ok%=FALSE
- 2.3
- 3030 IF mode%=0 OR mode%=8 OR mode%=12
- 2.3
- OR mode%=15 OR mode%=18 OR mode%=19 OR mode%=20 THEN C%=16:ok%=TRUE
- 2.3
- 3040 IF mode%=1 OR mode%=4 OR mode%=9
- 2.3
- OR mode%=13 THEN C%=32:ok%=TRUE
- 2.3
- 3050 IF mode%=2 OR mode%=5 OR mode%=10
- 2.3
- THEN C%=64:ok%=TRUE
- 2.3
- 3060
- 2.3
- 3070 col$=“04”
- 2.3
- 3080
- 2.3
- 3090 IF mode%=0 OR mode%=4 OR mode%=18
- 2.3
- THEN col$=“04”
- 2.3
- 3100 IF mode%=1 OR mode%=5 OR mode%=8
- 2.3
- OR mode%=19 THEN col$=“15”
- 2.3
- 3110 IF mode%=2 OR mode%=9 OR mode%
- 2.3
- =12 OR mode%=20 OR mode%=10 OR mode%=13 OR mode%=15 THEN col$=“2”
- 2.3
- 3120 IF ok%=TRUE THEN OSCLI(“LOAD Col”
- 2.3
- +col$+“ 2600”)
- 2.3
- 3130 =ok%
- 2.3
- SAVE “V__M”
- 2.3
- LOAD “V__P”
- 2.3
- 250DATA 0,0,0,0,0,0,2,4,4,4,2,16,8,1
- 2.3
- ,16,0,0,0,2,2,16,4,1,16,0,0,0,2,
- 2.3
- 1,16,0,0,0,0,0,0,2,8,2,2,4,4,2,
- 2.3
- 2,16,2,1,16,2,8,2,2,8,2
- 2.3
- 1740DEFPROCJ(b%):e%(b%)=0:ONM%+1GOTO
- 2.3
- 1770,1810,1880,1880,1770,1810,1880, 1880,1810,1880,1880,1880,1880,1880
- 2.3
- ,1880,1880,1880,1880,1880,1770
- 2.3
- ,1810,1880,1880,1770,1770
- 2.3
- 2070DEFPROCE:FORb%=1TO8:e%(b%)=b%?
- 2.3
- (&2608+((a%-1)*2+a%-10)*8-1):ONM%+1
- 2.3
- GOTO 2110,2150,2200,2200,2110,2150,
- 2.3
- 2200,2200,2150,2200,2200,2200,2200, 2200,2200,2200,2200,2200,2200,
- 2.3
- 2110,2150,2200,2200,2150,2150
- 2.3
- SAVE “V__P”
- 2.3
- • Cheap colour monitors − Peter Sykes bought a Commodore 1084 monitor
- which seems to be identical to the Phillips 8833 but cheaper. He got his
- from Eazyprint in Staines, Middlesex for £240, around £20 less than the
- cheapest he could find the Phillips 8833. (There’s an Acorn one for sale
- in the small ad’s, but there must be other folk by now who are up-
- grading to multi-syncs and have monitors for sale − send in your small
- ad’s folks − no charge.)
- 2.3
- • Use of Archimedes on Econet − Copying ADFS format discs to NET and
- vice-versa, no utility is needed as Archimedes has it all built in:-
- 2.3
- *COPY -adfs-$.* -net-$.whatever.* QRC
- 2.3
- Here ADFS is the source, NET is the destination. The ‘whatever’ is the
- chosen destination directory, or directory path (e.g. replace ‘whatever’
- with ‘fred.mary.utils’) The * is to indicate all files. The Q indicates
- QUICK copying using all available RAM. This damages resident programs
- but considerabley speeds the copying process. It is also almost
- essential if using early versions of the Econet Software Modules (NETFS,
- ECONET) due to bugs in these which cause ‘Not Listening’ messages. Later
- versions do not suffer this. The R to indicates recursive copying of
- sub-directories. The C turns OFF confirmation so that copying occurs for
- all files without question.
- 2.3
- Simple modifications to the command line allow copying in the reverse
- direction.
- 2.3
- (This was sent in by Michael Ryan, editor of the Econet User Group
- Magazine (NEUS) which carries regular articles on Archimedes on the
- network (and many less esoteric matters as well). We have also been
- licensed by Acorn to provide free upgrades to Econet software modules
- for those unable to obtain them elsewhere. Econet User Group, Balkeerie
- Cottage, Eassie by Forfar, Angus, DD8 1SR.)
- 2.3
- FWP Hints & Tips
- 2.3
- compiled by Mike Hobart
- 2.3
- • Changing default drive − those of you with dual drives may want to
- be able to get FWP to default to looking for data on drive 1. To do
- this, all you do is load $.library.1wp and change the line that sets up
- the documents directory to:
- 2.3
- *set FirstWordPlus$Docs :1.$.
- 2.3
- • Saving to a fresh disk − If you need to save your work onto a fresh
- disk, you may have difficulty in persuading the save to work: you get
- silly messages about the disk being write-protected and directories not
- being present. This is very frustrating if you have just written the
- first chapter of your bestseller. Try “Save as...”, taking special care
- either to see that you are in the correct directory as specified in the
- directory box at the top of the save window or create a new file in the
- root directory by clicking repeatedly on the X icon until you are left
- with only a “*”. Thanks to Peter Tettmar, on whose solution is differ
- ent, but less convenient as you have to anticipate the problem!
- 2.3
- • Form feeds in the wrong places − Edit your printer driver (the “hex”
- directory one) to inactivate the “vertical tab to line” feature. This is
- done by placing a “*” at the beginning of the line (line no 4, which
- should now read *4, 1B,42,80,0,B or near). If you have serious troubles
- with irrational formfeeds, try setting the CONFIGURE IGNORE of the
- battery-backed RAM to prevent the computer ever sending to crucial code
- to the printer. (Thanks to David Adamiak and from him to GST Holdings).
- 2.3
- • Use of IBM fonts − Steve Jones points out that there can be
- advantages in using the IBM font set, if your printer supports it. The
- monthly disk con-tains his very full instructions and programs. The main
- reason for using the IBM fonts is the availability of certain symbols
- for maths and graphical characters. These can be especially useful for
- designing forms.
- 2.3
- • Graphics problems (e.g. that white is printed grey etc.) can be
- cured by preparing the graphics in 1st Word palette. For Artisan, copy
- 1stword’s Resources.1wp.!palette as artisan.1wppal (or what takes your
- fancy) on the Artisan disk, then boot up Artisan, grab the disk ikon and
- finally select the new palette. The result is not artistic, but a quick
- roller brush over the background with white, followed by the artwork in
- e.g. black produces a picture you can import and have printed correctly.
- The reason this works is that the graphics dump routine in 1st Word
- assumes the use of the program’s own palette, or at least that it is
- trying to produce a paper version of what you see on the screen. It is,
- incidentally, quite an intelligent and quick dump, which checks to see
- if there are pixels to print before printing a line, and issuing a
- linefeed if not.
- 2.3
- • Conversion from WWPlus − The following hint might be useful to
- people still trying to convert WW+ file to 1WP. The convert program
- published in Archive does a wonderful job. However, I found it a bit
- irksome having to edit out all the ‘US’s and ‘UE’s etc which are left
- after the program has dealt with the green and white embedded commands.
- (This just goes to show how quickly we start to take things for
- granted!!). I also found that it was impossible to reformat the text to
- a new line length. The latter problem seemed to be that 1WP ended lines
- with &0E, whist converted WW+ files ended with the last letter of the
- last word on the line.
- 2.3
- The solution to both problems is as follows:
- 2.3
- 1 SPOOL out the WW+ file, using Option 8 (This removes all embedded
- commands and centres text and produces indents and TABs)
- 2.3
- 2 Reload the spooled file and use Search & Replace to change all
- double returns to @@ (or any other unused combination of letters)
- 2.3
- 3 Change all of the remaining single returns to <space>-return
- 2.3
- 4 Change all of the @@s (or whatever) to <space>-return-return
- 2.3
- 5 SAVE the modified file using Option 1
- 2.3
- 6 Run the SAVED file through the convert program
- 2.3
- The effect of 2, 3 and 4 is to save the paragraph breaks, but end all of
- the lines with a space. The result is a file with no extra ‘remains’ of
- embedded commands, and which will reformat correctly in First Word Plus.
- 2.3
-
- H & T are a bit thin on the ground this month because this issue is
- being finished before Christmas so I get some time off and it’s only a
- couple of weeks since I closed the December issue, so not much has come
- in yet. Most of the H & T that we have got were sent in by Anton Carver.
- Thanks Anton!
-
- 2.4
- • Using function keys − If you want to get the function keys to
- produce ASCII codes, say, 200, 201, 202 etc, you use *FX 225,200 but
- this only works for keys <f0> (the print key) to <f9>. If you want to
- use <f10> upwards, you need to use *FX 221,200. This also makes <insert>
- into the equivalent of <f13> i.e. it generates, in this case, ASCII 213.
- 2.4
- • Troubles with Mitsubishi Drives? − Yes, there are problems with some
- of the new 5.25” Mitsubishi drives with some of the 5.25” disc inter
- faces, but they can be solved. The problem is the use of pin 2 on the
- interface. It was not used on the BBC micro, but on the new Mitsubishi
- drives it is used for DC interrupt. The solution is to put a little bit
- of masking tape on the edge connector inside the drive mechanism so that
- it doesn’t make contact with the p.c.b. Pin 2 is on the top of the board
- at the outside edge.
- 2.4
- • Programmable reset − A hang-over from the BBC micro is that if you
- program function key 10, you will find that if you press <reset>,
- function key 10 will be executed! If you don’t know about this, it can
- come as something of a shock, but it could be that you would want to
- make use of it if you were, say, developing a machine code program which
- kept hanging up the machine and forcing you to press <reset>. You could
- program it as *KEY 10 *BASIC|MOLD|MEDIT .|M and it would jump you back
- into editing the program at the point where you were.
- 2.4
- • Is it still going? − If you are doing some heavy machine code
- programming and want to know if the computer is still working or whether
- you have locked it up completely, try pressing the caps lock and/or
- scroll lock keys and if they are still responding, your computer’s not
- dead yet! The caps and scroll lock LED’s are controlled by the computer
- in response to the key presses, so if they are working, it tells you
- that the processor is still reponding to interrupts.
- 2.4
- • Using ARMBE − It is useful to be able to enter ARMBE at the point of
- the last error. Here is a program which sets up function key 4 so that
- it enters ARMBE at the point where the error occurred or, if no error
- then it enters where you were last editing by using “EDIT .”.
- 2.4
- 10 *set key$edit IF ERL=0 THEN OSCLI (|“KEY 4 *FIXKEY4||mEDIT . ||m|”)
- ELSE OSCLI(|“KEY 4 *FIXKE Y4||mEDIT |” + STR$(ERL) + |“||m |”)|mMISTAKE
- |m*FX138,0,132|m
- 2.4
- 20 *set alias$fixkey4 set key$4 |<key$edit>
- 2.4
- 30 *fixkey4
- 2.4
- • REM’s − Although the User Guide says that REM statements are ignored
- by BASIC, this is not completely true in BASIC V. This is because the
- block conditional IFÉTHENÉELSEÉ ENDIF requires the THEN to be the last
- statement on the line. Adding a REM to the end of the line will change
- the flow of control, thus:
- 2.4
- >LIST
- 2.4
- 10 OK%=TRUE
- 2.4
- 20 IF NOT OK% THEN
- 2.4
- 30 PRINT “Wrong!”
- 2.4
- 40 ELSE
- 2.4
- 50 PRINT “Right”
- 2.4
- 60 ENDIF
- 2.4
- >RUN
- 2.4
- Right
- 2.4
- >LIST
- 2.4
- 10 OK%=TRUE
- 2.4
- 20 IF NOT OK% THEN :REM Danger!
- 2.4
- 30 PRINT “Wrong!”
- 2.4
- 40 ELSE
- 2.4
- 50 PRINT “Right”
- 2.4
- 60 ENDIF
- 2.4
- >RUN
- 2.4
- Wrong!
- 2.4
- • MODE3/6 gaps − There is an undocumented difference between the way
- that the gaps between lines are coloured in the 25-row modes. In modes 3
- and 6, the gaps are the border colour and in modes 11, 14 and 17, they
- are the background colour.
- 2.4
- By experimenting with SWI“OS_ReadMode Variable”, I discovered that bit 3
- of variable 0 (Modeflags) indicates the condition. If the bit is set to
- 0, the gaps will be background colour and if 1 they are border colour,
- thus:
- 2.4
- 10 For mode%=0 TO 17
- 2.4
- 20 MODE mode%
- 2.4
- 30 VDU 10,0,24,128,0|
- 2.4
- 40 SYS“OS_ReadModeVariable”
- 2.4
- ,MODE,0 TO ,,modeflag%
- 2.4
- 50 PRINT “Mode= ”;MODE
- 2.4
- 60 IF (modeflag% AND (1<<3))
- 2.4
- <>0 THEN t$=“Border” ELSE t$=“Background”
- 2.4
- 70 IF (modeflag% AND (1<<2))
- 2.4
- <>0 THEN t$=“No”
- 2.4
- 80 PRINT t$;“ gaps”
- 2.4
- 90 wait%=GET
- 2.4
- 100 NEXT
- 2.4
- • Auto linefeed − Some software packages, like First Word Plus for
- instance, insist that you set your printer so that it does not generate
- auto-matic linefeeds. This means that if you list a BASIC program with
- lines that are longer than the carriage length, the line wraps round and
- is overprinted. To avoid this and the difficulty of fiddling with dip
- switches, use the BASIC command WIDTH before printing. To do this, type
- WIDTH <carriage length> (e.g. WIDTH 80) before printing and WIDTH 0 to
- reset to the default setting after printing.
- 2.4
-
-
- • How to wipe a disc clean − Having explained in H & T in issue 2.1
- how to use *LIB“” and *WIPE * ~C to wipe a disc clean, here is the
- really quick way! Take a blank disc and do a *BACKUP onto the disc to be
- purged − takes about 10 seconds all together, even with only a single
- drive!
- 2.5
- • Microlink Modem connections − We have at last sorted out the
- connections necessary for the Microlink Multispeed modem. The problem is
- that it seems to need two different connections depending on whether you
- are using ArcTerm or Hearsay. Anyway, here are some connections that
- seem to work OK. ArcTerm version first:
- 2.5
- Modem Computer
- 2.5
- GND 1
- 2.5
- }Ñ 5 GND
- 2.5
- GND 7
- 2.5
- RXD 2 Ñ 3 TXD
- 2.5
- TXD 3 Ñ 2 RXD
- 2.5
- RTS 4 Ñ 7 RTS
- 2.5
- CTS 5 Ñ 8 CTS
- 2.5
- 6 DSR
- 2.5
- DSR 6 Ñ{2 .5
- 1 DCD
- 2.5
- DTR 20 Ñ 4 DTR
- 2.5
- Note that the Archimedes DCD is not connected to the modem DCD but to
- the DSR to ensure that it is ON all the time. The modem DCD is only ON
- whilst on-line. Here are the Hearsay connections:
- 2.5
- Modem Computer
- 2.5
- GND 1
- 2.5
- }Ñ 5 GND
- 2.5
- GND 7
- 2.5
- RXD 2 Ñ 3 TXD
- 2.5
- TXD 3 Ñ 2 RXD
- 2.5
- RTS 4 Ñ 7 RTS
- 2.5
- CTS 5 Ñ 6 DSR
- 2.5
- DSR 6 (NC)
- 2.5
- DTR 20 (NC)
- 2.5
- DCD 8 Ñ 9 RI
- 2.5
- 1 DCD}
- 2.5
- 4 DTR} linked
- 2.5
- 8 CTS}
- 2.5
- • BBC Hard Discs − If you have BBC hard discs that use the 1 MHz bus,
- you can run them on the Archimedes under the new 6502 emulator,
- “65host”, that comes with RISC-OS. All you do is enter 65host and load
- the BBC 1770 ADFS then, assuming you have an I/O podule, connect the
- hard disc to the 2 MHz bus and away you go.
- 2.5
- (Surely it wouldn’t be too difficult, would it(?), to patch it into the
- existing operating system to make the hard discs accessible in native
- mode instead of limiting it to use with the emulator? Could anyone do
- that for us? Ed.)
- 2.5
- • Naff RTC Month − If you get this error message when running the
- desktop, the chances are that it is time to change your batteries. Acorn
- suggest changing them once a year.
- 2.5
- • Repton 3 − first a comment − The characters included are exactly the
- same as in the BBC version even though they are mode 9, so it looks like
- mode 5 on the BBC. This is disappointing as the extra resolution and
- colour are wasted unless you redefine the characters − a mammoth task as
- there are 768 altogether! (Phil Armstrong, Doncaster)
- 2.5
- Phil also saysÉ I redesigned the first 48 characters which took quite
- some time and I did encounter a few problems, namely my maps occasion
- ally were wiped or the start position changed. To get round this
- problem, I examined the data files and found:
- 2.5
- &0000 to &10A0 8 Map definitions and colours for each map
- 2.5
- &10A0 to &70A0 48 character definitions
- 2.5
- So if you lose your maps or wish to copy a character set to another set
- of maps, follow these operations:
- 2.5
- *Load Newdata 10000 load new char-acters as saved by editor
- 2.5
- *Save Char 110A0 170A0 save character set alone
- 2.5
- *Load Olddata 10000 load file contain-ing required maps
- 2.5
- *Load Char 110A0 overlay new character set
- 2.5
- *Save Newfile 10000 170A0 save maps and characters together
- 2.5
- Newfile can then be loaded into the game. Changing characters does not
- seem to affect the competition numbers the game gives you.
- 2.5
- • Games on the 440 − Many games programs will not run on the 440 if
- the screensize is set above 160k, so you should try *Configure Screen
- size 5 before running the game.
- 2.5
- • Pacmania − Two avid “Pacmaniacs”, Harjit Takshak and Linus Twizell,
- have provided some Pacmania hints:
- 2.5
- Do a *LOAD PACMANIA 10000 then you can set the number of lives with
- ?&102C8 = n (but too many slows the games down) and ?&113D4 = n sets the
- number of points per pill and ?&10234 = n sets the number of credits and
- then CALL &10000 starts off the game.
- 2.5
- • GammaPlot − It is possible to change the colour of a line on a line
- graph by using the command *SG17,n,128 where n is the GCOL number (e.g.
- 48 = blue). This command can also be used in the Macro mode followed by
- a line with GRAPH (just the graph) or CHART (graph and axis). The colour
- will be saved, along with the graph, to disc.
- 2.5
- • Printer problems − there have been one or two problems with spurious
- operation of printers, especially with Integrex printers when doing
- graphics dumps. These are caused by timing problems on the Archimedes’
- parallel port control lines and can be solved by an internal circuit
- board modification that Acorn have recognised as a field change, i.e. if
- you are having problems, go to your local Archimedes dealer and ask if
- he can do field change 2002 for you. (D.I.Y. field changes will void
- your warranty, but if you want details anyway, send us an S.A.E.)
- 2.5
- • Conditional booting (cf Archive 2.3, page 13) Philip Colmer says
- that unfortunately *FX200,2 followed by reset is treated as a power-on
- reset so the monotonic clock is reset. Probably a better way is
- SYS“OS_Byte”,253,0,255 TO break% where break% is 0 for soft break, 1 for
- power-on reset and 2 for a hard break − a bit more reliable than
- checking a clock value.
- 2.5
- • BCPL on ADFS − J Laski writesÉ I am a BCPL freak: due to the fact
- that ADFS was not available when it was designed, the ROM system causes
- files to be read/written with OSBGET/PUT rather than OSFILE/OSGBPB;
- also, intermediate files in the compiler and editor use names such as
- Backup$ which ADFS abhors.
- 2.5
- To get round this, patch the routine in the ROM (image disk) FSTYPE
- (G39) always to return 7 (see manual p117). In both BCPLARG and BCPLCCG,
- patch the second static load (LLL) in G1 from “OCODE$$” to “OCODE!!”. In
- ED, in G318 patch the static load in G318 about 40 words before the SWL
- near the end of the routine; this can best be found by looking for the
- long forward jump about 30 Cintcodes from the beginning. (N.B. I use an
- extended ED, so have only given rough positions; G318 is the last
- routine called from G1.)
- 2.5
- If you feel you cannot make these changes yourself, and send me a disk
- with proof that you have a legal copy of BCPL and a stamped self-
- addressed mailer, and I will send you a modified version. I would
- appreciate, but do not insist on, any utilities that you think might
- amuse me.
- 2.5
- I am seeking a version of BCPL in ARM code and, if ACORN cannot be
- persuaded to release their version, will do it myself, probably somewhat
- ‘adhocly’. If you have any views on desirable facilities, I should be
- glad to read them. I shall shareware distribute with a licence fee
- requested. (Dr J Laski, 18 Ebury Street, London, SW1W 0LU.
- 2.5
- • “Colour Printouts − The Easy Way” − I read with considerable
- interest the article by W R (Basil) Davis on taking 35mm photographs of
- the monitor screen. (Archive 1.9, page 52) I was able to put this to
- practical use recently since I wished to design and produce some
- graphics screens (using GammaPlot) and use these in a conference
- presentation. I did consider using acetates with an overhead projector,
- but decided 35mm slides would be more suitable.
- 2.5
- The following additional comments (which should be read in conjunction
- with the original article) may assist other Archive readers contemplat
- ing taking such pictures:
- 2.5
- 1) Before embarking on photographing any screen displays, it is
- important to remember that any apparently minor “blemish” will be
- magnified considerably if your results are being projected using 35mm
- slides. Careful thought should be given to the screen layout and the
- choice of colours; provided they don’t clash, brighter foreground
- colours are preferable, with black or a dark blue making an ideal
- background. The normal Archimedes text is quite visible when projected
- using 35mm slides; additionally I used a GammaPlot feature to enlarge
- the standard text for titles etc. and, whilst this was quite acceptable
- on a monitor screen, when projected it did appear noticeable “chunky”.
- Next time I will use the Archimedes special fonts with GammaPlot
- instead.
- 2.5
- 2) In choosing the 35mm film to use, one important consideration may be
- the speed with which you wish the results to be returned to you. Whilst
- most colour print films can be developed overnight or even within an
- hour or so, this is not the case with colour slide films. Most have to
- be sent away for processing and a delay of 10−14 days is not untypical.
- If you want colour slide film developed quickly it is best to use (non
- “process paid”) Kodak Ektachrome film which good photographic shops
- should get returned to them within 2−3 days. There are also a few
- specialist laboratories which offer a 2−3 hour service.
- 2.5
- 3) When determining the correct ‘peak white’ exposure using an automatic
- camera, it is possible for the camera’s metering system to be too
- sophisticated! I was using a Minolta 7000 AF camera and the exposure
- settings fluctuated quite rapidly as the monitor screen picture was
- scanned and refreshed. Checking the exposure using a different camera
- confirmed the article’s “if all else fails” assumed exposure settings.
- 2.5
- 4) Focusing may well be perfectly feasible when using a camera with
- auto-focus. I found it best to set the initial focus with a screen
- display visible, rather than a blank screen, and then switch the auto-
- focus off − this is because the Minolta 7000 AF system tries to refocus
- after every picture is taken. In setting the combination of shutter
- speed and aperture, it is probably preferable to err towards the slower
- shutter speed/smaller aperture (higher ‘f’ number) setting as this will
- increase the ‘depth of field’ and give a greater safety margin if the
- focusing is not quite right.
- 2.5
- 5) As mentioned in the original article, a sturdy tripod is virtually
- essential and a remote shutter release (or possibly the camera’s Delayed
- Action feature − if fitted) must be used to avoid camera shake and
- consequent blurred pictures. Additionally, switching off the room lights
- when taking the photographs should avoid any extraneous reflections off
- the monitor screen possibly spoiling the finished results.
- 2.5
- 6) If you are using 35mm slides and the results are to be projected
- using a professional (rather than domestic) slide projector, it is
- definitely worthwhile having the slides ‘glass mounted’ − although this
- does increase the cost! This prevents the heat from the projector lamp
- “popping” the slide and causing part(s) of it to appear out of focus.
- For those who are interested in further reading on the subject, there is
- an article in January 1989’s issue of BBC Acorn User (pages 81-83) on
- the subject of taking photographs of the computer screen, there is even
- advice on taking pictures of commercial games software. Rob Brown.
- 2.5
-
- 2.5
- • Willie Stott has sent in a very complete set of facilities for
- support of the Epson LQ series, including a download font designer. This
- will only be of interest to those with the right hardware, but he has
- used a neat idea to get control of any extra facilities that your
- printer supports, but for which First Word Plus has no category. He
- points out that foreign characters can be used as printer definitions.
- The characters with ASCII values between &E0 and &EE appear on the
- bottom line of the character window and you have to do three things:
- 2.5
- a) Define the character as a suitable message to the printer in the
- character translation table of the hex file, then turn it into a driver.
- 2.5
- b) Design suitable character definitions (using VDU23,...) to
- represent the action of the printer so that it is added to the compu
- ter’s character table when FWP is booted up.
- 2.5
- c) Include your definitions in the FWP boot file before the *key 1 ...
- line.
- 2.5
- • A tip from an unknown writer (maybe Paul knows who to acknowledge −
- Sorry, no. Ed.): how would you like to be able to produce a spool file
- of your FWP output? What? Not much!? You may be missing something, as
- you could then move the file to another machine and get a printout via
- that machine, e.g. via an IBM or a mainframe. The trick is to *SET
- PrinterType$4 <spoolfilespec> before booting up FWP. Then select
- “network port” from the printer box in FWP. The system variable
- PrinterType$4 holds the pathname for network printer output. The
- <spoolfilespec> needs to include the full adfs:$.filename format.
- 2.5
- • Someone besides me is the kind of two-fingered typist that hits
- <ctrl> at the same time as <A>. What should our correspondent do? File
- his fingers down? Stick a piece of rough Velcro on the <ctrl> key? No,
- contact the Archive office and have someone write a module to intercept
- <ctrl-A> and make a beep. The trouble is that when you are just feeling
- bold enough to try to modify a bit of assembler to help a friend, you
- should not choose a keyboard buffer intercept. There is no way to try it
- out safely, or even to get a decent service from the debugger as every
- keypress goes via your duff code. You cannot even type “*rmkill”
- successfully. The only key which really works is <reset>. Help!! All
- serious programmers out there: where did I go wrong? Why does the IRQ
- stack pointer unwind so fast? P.S. If you can include a <ctrl-f12> =
- swapcase facility in the module, you will win a large “thank you” and a
- small prize for the best solution. You can start with the PrintKey
- module program in Archive1.10, page 45.
- 2.5
- • There is a new version of FWP available from Acorn for those whose
- copy does not pause at the ends of each page, even if the flag has been
- correctly set in the printer driver. Return your disk to Customer
- Support, Acorn Computers Ltd., Fulbourn Rd., Cherry Hinton, Cambridge
- CB1 4JN. (Reprinted from BBC Acorn User, Feb ’89, p 10).
- 2.5
- It is rumoured that there is a genuinely new version on its way, perhaps
- to coincide with RISC-OS.
- 2.5
- • Johnathan Young has a cure for the FWP buzz (the one which comes out
- of the speaker or down the external audio output, and sounds like the
- onset of tinnitus): boot up and then exit EMR’s sound synth package. A
- bit expensive for silence, but you get the music program free! Has
- anyone an explanation or a better solution?
- 2.5
-
-
- • Dacom modem connections − If you want to connect a Dacom modem to
- the Archimedes, try the following connections:
- 2.6
- Archimedes Modem
- 2.6
- 2 Ñ 3
- 2.6
- 3 Ñ 2
- 2.6
- 5 Ñ 7
- 2.6
- 9 Ñ 6
- 2.6
- Also link 1, 4 and 8 at the Archimedes end and also 6 to 7. If you are
- using Hearsay 1.04, use the Tandata modem driver, not the Dacom one.
- 2.6
- • Easy copying − If you have a single drive, try setting
- 2.6
- *set alias$dcopy %0 :0.%0 PQ
- 2.6
- Then you can use, say,
- 2.6
- *dcopy filetocopy
- 2.6
- and this will copy the file “filetocopy” onto another disc on the same
- drive, prompting for disc changes.
- 2.6
- • Easy compacting − This could apply to a number of commands, but if
- you want, for example, to compact a disc several times, you can use
- *repeat 6 compact which will do a *compact 6 times if you have previ
- ously set an alias for repeat as follows:
- 2.6
- *set alias$repeat if %0>0 then repeat %0-1 %*1|m if %o>0 then %*1
- 2.6
- • Masked Sprites − The Welcome Disc Sprite Editor was criticised in
- November 88 Archive as not working properly. It does work properly, well
- almost!
- 2.6
- To create a masked sprite, first draw your sprite as normal, then press
- <shift-f9> (create mask) then select the colour that you want to be
- transparent and fill in any areas that are to be transparent. The
- display will show a hatched effect for that colour.
- 2.6
- To plot a masked sprite, remember that you must use a GCOL 8,0 before
- plotting the sprite.
- 2.6
- • Hard disc Backup program − Paul Hobbs sent in the following
- improvement to last month’s hard disc backup programÉ The very useful
- hard disk backup program in Archive 2.5 can, I think, be improved very
- easily by the addition of the following lines after the line PRINT
- CHR$(13);”Scanning: “;... etc in PROCaction(). It allows a check to be
- made for directories not to be backed up. The full path name should be
- given as in the example below. Quite a few of the directories on my disk
- are backed up on their own floppies and this modification saves a lot of
- time.
- 2.6
- 1621 RESTORE
- 2.6
- 1622 skip=FALSE
- 2.6
- 1623 REPEAT
- 2.6
- 1624 READ nocop$
- 2.6
- 1625 IF LEFT$(dir$,LENnocop$)
- 2.6
- =nocop$ THEN skip=TRUE
- 2.6
- 1626 UNTIL nocop$=“*** END ***”
- 2.6
- 1627 IF skip=TRUE THEN ENDPROC
- 2.6
- 7000DATA :4.$.1WP.cfg,:4.$.1WP.doc
- 2.6
- .BAK,:4.$.TMP,:4.$.BBCTelSoft
- 2.6
- 7001DATA :4.$.TMP,:4.$.CPROGGIES,
- 2.6
- :4.$.BACKUP,:4.$.1WP.hex
- 2.6
- 7002DATA “*** END ***”
- 2.6
- • Hard disc squeek − Those who are lucky enough to have hard discs may
- be suffering a continuous high pitched squeal from the drive when the
- machine is switched on. My dealer assured me that it would eventually go
- away, but I lost patience and cured it by lubricating the disc drive
- spindle with WD-40 (or similar). If you remove the disc drive and look
- into the connector end, between the printed circuit board and the drive
- body, you should be able to see a carbon pad mounted on the PCB which
- rubs against the end of the spindle (to earth it and avoid static
- problems). Using an aerosol can fitted with a long tube, a few drops of
- lubricant on this pad will cure the noise. Take care when squirting −
- and naturally no responsibility is accepted!
- 2.6
- • C routines − When using the tmpnam() or tmpfile() routines in the
- ANSI C library, a directory &.Tmp needs to be created on the current
- drive. This is not present on the master floppy, nor is it created by
- the hard disc install procedure (installHD).
- 2.6
- • ANSI C command line parameters − page 31 of the manual says that
- “Arguments to main() are the words of the command line, delimited by
- spaces”, but gives no further information. The parameters are actually
- passed in the same way as the Unix2 environment does − for those
- programmers unfamiliar with Unix, the main procedure is called with two
- arguments, which are declared as:
- 2.6
- int main(argc,argv)
- 2.6
- int argc;
- 2.6
- char *argv[];
- 2.6
- {2 .6
- /* argv[1] points to first
- 2.6
- parameter
- 2.6
- argv[2] points to second,
- 2.6
- etc.
- 2.6
- Program name is at argv[0] */
- 2.6
- where argc is the number of parameters given (which includes the program
- name, so this will always be at least 1) and argv is an array of
- pointers to the parameters − argv[0] is the command name and argv[1] is
- the first parameter. Parameters are normally separated by spaces, but
- quoted strings are passed as one unit. Some programmers prefer to
- declare argv as:
- 2.6
- char **argv;
- 2.6
- and use it as a pointer to a list of pointers to the arguments.
- 2.6
- • BBC Master Edit − If you want to use an image of the Edit ROM (the
- Master version) under 65Arthur, you need a *ALPHABET BFONT before
- running it up, otherwise the on-screen help display looks very confus
- ing. This ROM, by the way, uses CMOS byte 8 (“reserved for Acorn use”)
- in which to save the screen mode and help level.
- 2.6
- • *COPY without the ‘Q’ − omitting the Q option when copying a file
- forces Arthur to ignore bad sectors or tracks in a file. This allows you
- to recover screens or text files from corrupted discs If you have a
- single drive and don’t want to perform umpteen swaps then proceed as
- follows:
- 2.6
- *DELETE or *COPY (with Q) the other files until you have room for
- another copy of the bad file.
- 2.6
- Then *COPY :0.filenme :0.BADfilenme ~C~PV
- 2.6
- • Orion loading speed − To speed up the loading, note that there is
- what appears to be a non fatal bug in the “$.Orion.Orion_bas” program.
- It *sload’s a sprite file seven times!
- 2.6
- LOAD “$.Orion.Orion_bas”
- 2.6
- now look round about line 3000 and you will find the *sload command that
- should be outside the FOR/NEXT loop!
- 2.6
- Edit this and then save the program back onto the disc. (The name at the
- top of the program has an extra ‘n’ at the end which has to be deleted
- from the filename as displayed by the editor if you try to save it with
- <f3>)
- 2.6
- • Orion − Feel like a laugh? Instead of EDITing “$.Orion.Orion_bas” as
- above, try :
- 2.6
- *con. scr. 20
- 2.6
- *con. spr. 20
- 2.6
- <ctrl-break>
- 2.6
- *DIR Orion
- 2.6
- LOAD “Orion_bas”
- 2.6
- 701 *UNSET BJS
- 2.6
- RUN
- 2.6
- Then when you press <space> to load the game you get a marvelous
- digitised laugh! This is apparently a (very clever) part of the
- protection used in the program.
- 2.6
- • Extended life for Orion − While the instructions are scrolling up
- the screen try pressing <U>, <L>, <C> and <space> together but in that
- order. It then allows you to select a level at which to start the game
- and you will find that you start with 10 lives & 10 smart bombs!
- 2.6
- • Zarch cheat − you can get into the cheat mode if, when you first
- start up and are sitting on the landing pad, you press <Q>, <T> and <U>
- together but in that order. You may have to try it a few times. Now <L>
- gives you an extra life, <F> refuels (in mid-air) and <D> toggles the
- auto-pilot.
- 2.6
- • Zarch − Some new landscapes make this game much better. (Program
- NewWorld on monthly program disc or send S.A.E. for listing.) This
- program works with the original protected version of Zarch as long as
- you have screen size to 160k and other sizes to zero. It uses a
- variation of the PRINTKEY program in one of the earlier Archives.
- (PRINTKEY had a bug in it! P%=0:O%=code% OPT 4-7)
- 2.6
- • Terramex. For endless lives, with Terramex disc in drive, type:
- 2.6
- *LOAD TERRACODE 9000
- 2.6
- !&CF18=&FAFFDC3E
- 2.6
- !&CF20=&FAFFDC3E
- 2.6
- CALL &9000
- 2.6
- • Quazer − with the Impact software version of Quazer (which appears
- to be the same as V1.42) type:
- 2.6
- *SETEVAL Quazer%MeatHead 1 -Immortal
- 2.6
- (also try Quazer%Lives, Quazer%Level)
- 2.6
- Then use *Quazer to Run
- 2.6
- • OS_FSControl problem − David Scott reckons there is a problem with
- the system command for the COUNT operation. The OS_FSControl (&29)
- system command for filing system control with R0 set to 28 (page 262 of
- the Programmers Reference Manual) has a problem which is not apparent
- from the description given.
- 2.6
- If the call is used in a program to obtain values for use by the program
- it is not possible to do this without the information also being printed
- on the screen. This is because bit 8 of the action mask in R3 must be
- set in order to get the correct values returned in R2 and R3.
- 2.6
- The way round this problem is to turn the screen output off using VDU21
- before making the system call and then to turn it back on afterwards
- with VDU6. If a printer is connected then this will also have to be
- temporarily disconnected with VDU3 before and VDU2 after the call.
- 2.6
- • Potential Electrocution! (Archive 2.5 p19) − This is a problem with
- most colour monitors. The explanation is as follows... When you turn the
- power off, a static charge forms on the screen surface, creating a
- potential difference of several KV between the monitor chassis and the
- screen surface. If you then pick the monitor up with the screen facing
- your body, the screen is effectively connected to your body, and so the
- potential now exists between you and the monitor chassis, and remains
- there due to the insulating properties of the plastic case. If you then
- touch the chassis via a mounting screw or the rear connector, the
- potential will be discharged, possibly painfully! (I speak from
- experience!) The answer is to make sure you are touching the chassis
- (e.g. the RGB connector shell) BEFORE picking it up, and keep hold of it
- whilst carrying the monitor. The other answer is to lift and carry it
- with the screen away from you.
- 2.6
- • Pipedream on RISC-OS − As reported last month, the current version
- of Pipedream DOES work under RISC-OS. All you have to do is *RMKILL
- International to kill the international keyboard. This is because Acorn
- have changed the use of the <alt> key under RISC-OS and Pipedream uses
- this for its drop-down menus.
- 2.6
- • PC Emulator problems − You may have problems with the computer
- locking up when you are using the PC emulator. This happens sometimes
- when you have a modem connected to the RS423 port which is not switched
- on. I suspect it may be the “unknown IRQ at &00000000” which Arthur
- manages to cope with but perhaps the PC emulator can‘t. Try keeping the
- modem switched on.
- 2.6
- • Stacked bar charts in Gammaplot − In Gammaplot it is not possible to
- produce directly “stacked” or segmented bar charts such as:-
- 2.6
-
- 2.6
-
- 2.6
-
- 2.6
- Nor is it possible to create directly bar charts with gaps between the
- bars such as-:
- 2.6
-
- 2.6
-
- 2.6
-
- 2.6
- but it is possible to create them indirectly by using a table with (say)
- only 1 in 5 of the values as a non-zero number (i.e. make other gaps by
- introducing zeros in the spreadsheet).
- 2.6
- Multiple bar charts such as:-
- 2.6
-
- 2.6
-
- 2.6
-
- 2.6
-
- 2.6
- Can be created by producing three (or more) separate graphs from three
- separate spreadsheets and then overlaying one on the other by using
- “Display all graphs” and using the “Window facility to move each (of the
- 3) separately to the desired position. The diagonal lines and any text
- (such as scales or title) is added in “Customise” afterwards.
- 2.6
- I know of NO package which produces segmented bar charts. Presenter will
- produce multiple bars directly but without the flexibility of Gamma
- Plot.
- 2.6
- If you had the patience then you could make several different bar charts
- and use the “Block Move” facility of “Customise” to stack the blocks of
- the bars but it would take time and might be a lot easier in, say,
- Artisan which has a “transparent” colour for use with its sprites.
- 2.6
- (N.B. Overlaid line graphs and multiple pie charts are very easy in
- Gammaplot.)
- 2.6
-
- 2.7
- • BBC winchester on Archimedes!! Alan Glover saysÉ I have got it to
- work on the i/o podule under RISC-OS. Here’s what you do: from the
- !65Host directory:
- 2.7
- *RMLOAD !RunImage
- 2.7
- *CACHEROM 0 dnfs
- 2.7
- *CACHEROM 1 ARFS
- 2.7
- *CACHEROM 2 <>.ADFS130
- 2.7
- *EMU.
- 2.7
- Note: Must be ADFS 130 − i.e. a B/B+ version and you must find an image
- of this yourself as it is not provided with RISC-OS. To use the
- Archimedes’ ADFS type *ARFS.
- 2.7
- The winchester is connected to the 2 MHz bus (theoretically 1 MHz!) on
- the I/O podule as it would be on a BBC.
- 2.7
- • Configuration problems in Art Nouveau − If you select ‘Configure
- machine’ from the opening menu when you have already configured the
- machine, you lose your old configuration when you quit and you are left
- with Art Nouveau’s own configuration. This is because it doesn’t keep
- track of whether you have already configured it. I was lucky − I had
- written a program long ago that translates a *SPOOLed *STATUS into a
- load of *Configure’s and I keep a copy of this spool on my hard disc at
- all times. You have been warned. Martyn Lovell.
- 2.7
- • Graphic Writer with a Star SG-10 − If you can have one complaint
- about Graphic Writer (apart from the manual) it’s the printer support. I
- own a Star SG-10 and am trying to let Graphic Writer use it to the full.
- The Star has an NLQ character set, but this cannot be combined with any
- other text style except underlined. So what I want is to adapt the
- printer driver so that it would normally print NLQ and for the other
- effects resort to draft printing. For this, I used the Printcon program
- and gave the following codes:
- 2.7
- Initialisation:
- 2.7
- ESC “@”
- 2.7
- ESC “G”
- 2.7
- ESC “4”
- 2.7
- Which resets the printer, turns on double-strike (gives better bold, but
- you may omit it) and NLQ. Make sure the printer is in IBM mode.
- 2.7
- For configuration (leave the rest the same as a FX80):
- 2.7
- Plain: 27,70,27,52
- 2.7
- Bold: 27,53,27,69
- 2.7
- Italic on: ESC “I”,1
- 2.7
- Italic off:ESC “I”,0
- 2.7
- Note that the input routine of the printcon program doesn’t accept two
- “ESC” sequences on one line, but it accepts two 27’s. The italic codes
- are different from an FX80. In fact, FX80 compatibility turns out to be
- somewhere in between the “Star” and “IBM” modes of the Star SG-10. The
- trick is the plain and bold codes. When Graphic Writer finds a “Bold”
- code it now also sends an NLQ-off code to the printer, which in effect
- makes the printer print in draft, emphasized and double-strike, the
- latter being already set at initialisation. (Yes, it is confusing, isn’t
- it?!) This makes it possible to mix NLQ, bold and italic-bold in the
- text. However, you can’t use italics or super/subscript without bold.
- These just print in normal NLQ.
- 2.7
- The same method should apply to other printers which can’t do everything
- in NLQ.
- 2.7
- Another tip on Graphic Writer is that you should always make any graphic
- as big as possible, i.e. use the whole graphic area, however small you
- want the picture to be. This makes page composition a lot easier and
- also causes less problems with distortion when rescaling.
- 2.7
- • Interrupt module − The interrupt module by Steve Hoare (Archive 2.6
- p44) is very useful especially, as he states in his article, with First
- Word Plus for creating directories etc. However there is a problem
- associated with *interrupt 0. This is that the pound key also generates
- ASCII 0 (a bug in OS1.2 I think) which means that every time you type a
- ‘pound’, the interrupt module takes over and opens up the OS window.
- However, <ctrl-O> is unused by First Word Plus, so I use *interrupt 15
- instead.
- 2.7
- The module also comes in handy when using a comms program to check on
- filenames, *type logfiles etc, but there is an enhancement that I think
- would make it more useful still. While in the OS window, it is possible
- to type <ctrl-Z> to open up the text window to the full screen which is
- handy, but on exit (in a WIMP program) only the top half of the screen
- is restored. If the source code could be modified to issue a redraw
- request for the whole screen it would be an improvement. Having looked
- at the code, it should be easy to do. Any offers?
- 2.7
- • Memory shortage on Logistix and First Word Plus − To get round the
- ‘out of memory’ snag which seems to turn up so often with First Word
- Plus and Logistix, if you have the 1.20 PC emulator, use the PC.PC
- startup routine first and then, instead of using the MS.DOS disc, insert
- Logistix instead and <reset>. <Ctrl-break> will then autoboot Logistix
- with a whole 275k of memory free to use.
- 2.7
- • Mitsubishi Disc Drives − Here are a number of points to bear in
- mind, writes Vic Budd, when adding external disc drives. If, after
- considering these, you feel competent to carry out the work, go ahead.
- If not, it is prudent to entrust the work to an experienced operator to
- avoid frustrations and disappointments.
- 2.7
- There are different circuit board layouts, but the basic checks on the
- drives are the same.
- 2.7
- 1. Remove link MS if made and change to adjoining position MM.
- 2.7
- 2. Remove link IU if made and discard it. On some drives there is no
- removable link. However, there is a circuit board foil link, DI, near
- the data cable edge connector, which is connected to pin 2, and this
- should be cut in these instances.
- 2.7
- 3. Move drive selector link to position 1, 2 or 3 according to which
- command you wish it to respond. (This assumes that the internal drive is
- to be 0).
- 2.7
- 4. The resistor pack should be in place. On some drives this consists
- of a single plug-in IC type device, whilst on others there is a row of
- DIL pins which should have shorting links inserted.
- 2.7
- 5. Make sure the data cable is correctly orientated − it will need to
- be at 180 degrees compared to the three and a half inch drive
- connectors.
- 2.7
- 6. If, as I do, you wish to run a second three and a half inch
- external drive and a five and a quarter inch drive, the connecting cable
- will, of course, need to be turned through 180 degrees to connect the
- drives together.
- 2.7
- 7. If you decide to use the Archimedes’ power supply, check the
- connections carefully before attaching the cable connectors, making
- quite sure you do not get the 12v and 5v leads confused.
- 2.7
- If you do all these things correctly, you too should have no problems
- with the Beebug lead and will be able to access drives A, B and C under
- the PC Emulator, as well as 0,1, and 2 under ‘native’ Archimedes.
- 2.7
- • Moving the pointer when it is not linked to the mouse can be greatly
- simplified by using the POINT TO x%,y% command which does exactly what
- is needed (note that you must unlink the pointer from the mouse first
- with MOUSE ON 129). Details are in the User Guide and under HELP POINT.
- Having looked at the relevant part of the PRM, it appeared to be
- impossible to do this, so I decided to have a rummage around in the
- BASIC module. This resulted in the discovery of some undocumented calls!
- Basically these are extensions of OSWORD &15 whereby putting &05 instead
- of &03 at R1+0 causes the pointer position to be set instead of the
- mouse position (see PRM p.133). Also, values of &04 and &06 appear to
- read the mouse and pointer positions respectively, though the code to
- read the mouse position contains a fatal bug in Arthur 1.2 and cannot be
- used! In theory it might be possible to patch it with a copy of the
- UtilityModule in RAM but this module refuses to be RMKILLed. Martin
- Simmons
- 2.7
- • Problems with *UP − If you are having problems (as expressed in the
- Help Section last month) with *UP or the use of ^ in a pathname, it is
- probably because of a bug in the ADFS. The problem occurs when a
- directory is renamed. The ADFS does not seem to keep track of it
- properly. The solution, apparently, is to do a *COMPACT on the disc.
- 2.7
- • Repton 3 again (Philip Armstrong) − I’ve got a few more comments on
- Repton 3. Firstly I hope that no one saved the new characters and maps
- onto the original disc. I have found that occasionally, the maps have
- been corrupted and thus rendered impossible. If you find a screen that
- you can’t do then check it with the original version. For those people
- that can’t get to grips with the array of different characters, create a
- second disc with all the files using a standard set of characters. This
- makes the screens easier to complete. I have included on the monthly
- program disc, the new characters that I use. They are not brilliant, but
- a distinct improvement on the original set. Superior Software only state
- that characters and maps cannot be used for commercial exploitation, so
- it is OK for us to distribute in this way. There is also a simple
- program to merge maps and my characters. Also, if you cannot stand the
- tune that accompanies the loading program of Repton, then change *tune1
- to *tune0 in the “config” file.
- 2.7
- Here is a list of Passwords for Repton 3. Sorry it’s not complete, but I
- do have other things to do. If anyone can do screen E of WORK
- (p=scratch), I’d be pleased to hear from them because it looks imposs
- ible and I have checked it against the original. I suspect a transporter
- has been defined wrongly.
- 2.7
- A Prelude B Rescind C Periwig D Mortify E Forsake
- F Gratify G Thistle H Spangle
- 2.7
- A Toccata B Nocturn C Liberal D Inspect E Delight
- F Botanic G Vitriol H Sacking
- 2.7
- A Finale B Yardarm C Zealous D Without E Aviator
- F Elderly G Juniper H Crimson
- 2.7
- A America B Herbage C Kitchen D Outcast E Quarter
- F Untwine G Tremble H Strange
- 2.7
- A Arctic B Kinetic C Gondola D Lozenge E Rotunda
- F Frontal G Younger H
- 2.7
- A Orient B Organic C Armhole D Visible E Neglect F
- Biplane G H
- 2.7
- A Oceans B Distain C Mundane D Eclipse E Warning F
- G H
- 2.7
- A Africa B Quickly C Zigzags D Closely E Panoply F
- Bonfire G H
- 2.7
- A Baby B Startle C Measles D Granite E WhimperF
- Cushion G Alimony H Utensil
- 2.7
- A School B Qualify C Knicker D Dynamic E Tendril F
- Lanyard G Vinegar H Yaskmak
- 2.7
- A Teenage B Eternal C Whisper D Feather E Rhubarb F
- Jasmine G H
- 2.7
- A Work B Inverse C Parapet D Elegant E Scratch F G
- H
- 2.7
- A Oap B Jackdaw C Rupture D Archery E Figment F
- Natural G Tonight H Brigade
- 2.7
- A Prehist B Dormant C Mineral D Varnish E Dashpot F
- Lobelia G Upright H
- 2.7
- A Egypt B Lobster C Tabloid D Achieve E Gristle F
- Deceive G Scalpel H
- 2.7
- A Victori B Earnest C Pervade D Violent E Bashful F
- Magnify G Wrought H Horizon
- 2.7
- A Now B Charity C Funeral D Justify E Naughty F
- Isolate G Radical H
- 2.7
- A Future B Primate C Mustang D Iterate E F G H
- 2.7
- • Shared C Library − Users of release 2 of ANSI C might like to know
- how to use the Shared C Library which is included on the disc but which
- does not seem to be documented in the User Guide. Normally, the AOF
- file, generated by compiling the C source, is linked with the C ANSI
- library file, $.ARM.CLib.O.AnsiLib. This produces an image file which
- can be executed directly by *RUNning it. This image file tends to be
- quite long as large port-ions of the C ANSI library are incorporated in
- it.
- 2.7
- On the C disc, is a file called $.Library.CLib which contains the C ANSI
- library in the form of a relocatable module. The interface between the
- user program and this Shared C Library module is a small file called
- $.ARM.CLib.O.Stubs which simply defines each ANSI library function as a
- SWI which is then recognised by the library module.
- 2.7
- As an example of the use, try the following. Mount your working copy of
- the C disc and enter directory $.ARM.CBench. Now compile the source file
- C.HelloW using the -c option so as not to invoke the linker:
- 2.7
- *CC HelloW -c
- 2.7
- Now link the resulting AOF file with the Stubs library:
- 2.7
- *Link -o HelloW O.HelloW $.ARM.CLib.O.Stubs
- 2.7
- Next load the Shared C Library module:
- 2.7
- *RMLoad $.Library.CLib
- 2.7
- And finally run the program:
- 2.7
- *Run HelloW
- 2.7
- Note that an image file generated in this way is not truly stand-alone
- as it needs the Shared C Library module to be loaded in order for it to
- run (but then again many programs need the Floating Point Emulator to be
- loaded in order to run). A big advantage is that the image file is very
- much smaller than it would be if it had been linked with the ANSI
- library in the normal way. One can envisage several C programs multi
- tasking under RISC-OS, sharing the resources of the Shared C Library.
- 2.7
- It should be noted that the Arthur-specific functions declared in the
- ArthurLib header file are not incorporated in the Shared C Library. If
- your program uses these functions you must include
- $.ARM.CLib.O.ArthurLib at the linking stage. So try the following:
- 2.7
- *CC Balls64 -c
- 2.7
- *Link -o Balls64 O.Balls64 $.ARM.CLib.O.Stubs $.ARM.CLib.O.ArthurLib
- 2.7
- *Run Balls64
- 2.7
- Provided the Shared C Library module is loaded, the program should run
- normally. John Morley
- 2.7
- • Sprite Animation − There have been many articles relating to the use
- of Sprites on the Archimedes. These have covered the use of PLOT &ED,X,Y
- to display a Sprite in its defined colours at point (X,Y) and the use of
- a Mask to allow a background to appear through the ‘unused’ parts of a
- sprite. They have also shown the use of Exclusive OR plotting using GCOL
- 11,0 to allow the sprite to be moved over any coloured background.
- 2.7
- The EOR solution to this last problem, of moving a multi-coloured sprite
- over a multi-coloured background, does work, but unless a great deal of
- thought is given to palette selection, the sprite does not retain its
- defined colour during movement.
- 2.7
- Many games will require the facility to define a sprite in specified
- colours, with a mask and to move it still retaining those colours rather
- than those produced by EOR.
- 2.7
- A solution is to use the standard Move/Display/Erase in a loop but not
- to use EOR. The following algorithm does this :
- 2.7
- 1 Define the sprite ‘MySprite’ with a mask (using SEDIT on the Welcome
- Disk).
- 2.7
- 2 Determine the size of ‘MySprite’. This may be known but a SYS call
- does it for you.
- 2.7
- LOOP
- 2.7
- 3 Determine the position where ‘MySprite’ is to be plotted.
- 2.7
- 4 Grab a sprite ‘Temp’ from the screen at this position the same size
- as ‘MySprite’.
- 2.7
- 5 Plot ‘MySprite’ with the mask.
- 2.7
- 6 Plot the grabbed sprite ‘Temp’ to ERASE ‘Mysprite’.
- 2.7
- ENDLOOP
- 2.7
- The following program demonstrates this :
- 2.7
- 10 REM > SpritePlot
- 2.7
- 20 REM Copyright Ian Smith
- 2.7
- 30 REM March 1989
- 2.7
- 40
- 2.7
- 50 REM An example program to show
- 2.7
- the use of sprites moving
- 2.7
- 60 REM across a multi coloured
- 2.7
- background by grabbing an area
- 2.7
- 70 REM of screen as a sprite and
- 2.7
- then using it to overwrite the
- 2.7
- 80 REM moving sprite.
- 2.7
- 90
- 2.7
- 100 MODE 15 :REM Works in other
- 2.7
- modes
- 2.7
- 110 T$=“Temp” : REM Will be the
- 2.7
- sprite grabbed from screen
- 2.7
- 120 M$=“MySprite” : REM A masked
- 2.7
- sprite created with SEDIT
- 2.7
- 130 *SLOAD !Sprites
- 2.7
- 140
- 2.7
- 150 SYS &2E,40,,T$ TO ,,,W,H :REM
- 2.7
- Find size of sprite to grab
- 2.7
- 160 : REM W)idth and H)eight
- 2.7
- 170 PROCDrawBackground : REM Draw
- 2.7
- a Multicoloured background
- 2.7
- 180 PROCTitle:REM and put titles on
- 2.7
- 190
- 2.7
- 200 REPEAT
- 2.7
- 210 REM ****** MOVE ******
- 2.7
- 220 MOUSE X,Y,B
- 2.7
- 230 SYS &2E,16,,T$,1,X,Y,X+W*2,
- 2.7
- Y+H*4 : REM Grab sprite
- 2.7
- from screen
- 2.7
- 240
- 2.7
- 250 OSCLI(“SCHOOSE ” + M$ ) :REM
- 2.7
- Select original sprite
- 2.7
- 260
- 2.7
- 270 REM ****** DISPLAY ******
- 2.7
- 280 GCOL 8,0 :REM Now plot it with
- 2.7
- its mask
- 2.7
- 290 PLOT &ED, X,Y :REM at the
- 2.7
- mouse position
- 2.7
- 300 PLOT &ED,900,800 : REM and
- 2.7
- display it in rectangle
- 2.7
- 310
- 2.7
- 320 WAIT:WAIT : REM Synchronise
- 2.7
- output
- 2.7
- 330
- 2.7
- 340 OSCLI(“SCHOOSE ” + T$) :REM
- 2.7
- Now plot the grabbed sprite
- 2.7
- 350
- 2.7
- 360 REM ****** ERASE ******
- 2.7
- 370 GCOL 0,0
- 2.7
- 380 PLOT &ED,X,Y : REM at the same
- 2.7
- place
- 2.7
- 390 PLOT &ED,1000,800 :REM and in
- 2.7
- its rectangle
- 2.7
- 400 UNTIL B=7 : REM 3 buttons
- 2.7
- terminates
- 2.7
- 410 END
- 2.7
- 420
- 2.7
- 430 DEF PROCDrawBackground
- 2.7
- 440 GCOL 3 : RECTANGLE FILL 0,0,
- 2.7
- 300,300 : REM Just a
- 2.7
- couple of
- 2.7
- 450 GCOL 4 : RECTANGLE FILL 50,50,
- 2.7
- 50,50 : REM rectangles and
- 2.7
- 460 GCOL 12:CIRCLE FILL 800,400,200
- 2.7
- : REM circles
- 2.7
- 470 GCOL 5 :CIRCLE FILL 600,300,100
- 2.7
- 480 OSCLI(“SCHOOSE ” + M$)
- 2.7
- 490 PLOT &ED,75,90 : REM and the
- 2.7
- sprite
- 2.7
- 500 ENDPROC
- 2.7
- 510
- 2.7
- 520 DEF PROCTitle
- 2.7
- 530 GCOL 1
- 2.7
- 540 RECTANGLE 900-2,800-4,W*2+4,
- 2.7
- H*4+8 :REM Draw rectangles
- 2.7
- 550 RECTANGLE 1000-2,800-4,W*2+4,
- 2.7
- H*4+8 : REM in which sprites
- 2.7
- 560 PRINT TAB(53,2);“S P R I T E S”
- 2.7
- : REM are displayed
- 2.7
- 570 PRINT TAB(52,3);“original
- 2.7
- grabbed“
- 2.7
- 580 PRINT TAB(0,1);“SPRITE
- 2.7
- DEMONSTRATION : use mouse
- 2.7
- to move sprite“
- 2.7
- 590 ENDPROC
- 2.7
- Comments on the program
- 2.7
- PROCDrawBackgound sets up a background to move over.
- 2.7
- PROCTitle puts text and a couple of rectangles on the screen
- 2.7
- 150 uses a SYS call to find the Width and Height of ‘MySprite’. This
- is needed so that the right size ‘Temp’ can be grabbed. (See PRM pp
- 429,433.)
- 2.7
- 230 grabs the sprite from the screen using a SYS call. Note the *2 and
- *4 to compensate for screen MODE 15. You’ll need to change this for
- other resolution modes.
- 2.7
- 250 selects ‘MySprite’
- 2.7
- 280 selects the Mask Plot option GCOL 8.
- 2.7
- 290 plots the sprite at the Mouse selected point
- 2.7
- 300 plots the sprite in a rectangle to show its original colours.
- 2.7
- 340 selects ‘Temp’
- 2.7
- 380 plots ‘Temp’ effectively erasing ‘MySprite’
- 2.7
- 390 plots ‘Temp’ in its rectangle. The effect of 390 has an interest
- ing side-effect. When you run the program move the sprite over the
- rectangle! See what happens!
- 2.7
- The program ‘SpritePlot’ and the sprite file ‘!Sprites’ are on this
- month’s disk but you can use the program by keying it in and also
- creating a masked sprite in mode 15 using SEDIT and saved as !SPRITES.
- 2.7
- The program can obviously be modified to run in other modes. The flicker
- on the sprite could be removed by modifying the program to plot only if
- the mouse has been moved. Ian Smith
- 2.7
- • Star-Trader Cheats − Here are some ideas and cheats for
- ‘StarTrader’. It is an excellent game, all the more impressive when you
- consider it is written in BASIC!
- 2.7
- Load the main game and enter the EDIT editor. (The main game file is
- ‘$.Resouces.StarTrader. StarTrader’.) You can alter as many as the
- following as you like to make the game a bit easier to get into;
- 2.7
- Line 290 change to: SUN=1 for a SunBurst
- 2.7
- DEATH=1 for a DeathBlossom
- 2.7
- CELL=1 for a super energy cell
- 2.7
- ENG=3 for the most powerful engines (Note ENG=2 & ENG=1 are available
- as well)
- 2.7
- NUMPT=10 for the number of photon torpedoes. Having 10 doesn’t spoil
- the display!
- 2.7
- Line 390 change CRD to the number of credits you want (STDA is the
- stardate)
- 2.7
- Line 420 change MAXHOL to the size of the hold you want fitted.
- 2.7
- Note: DAMCAP is used in Line 13570 to calculate the remaining hold
- capacity.
- 2.7
- PRC() holds the value of each of the tradegoods you are carrying CTOTAL
- is the total weight of cargo you are carrying at the moment (also used
- in 13570)
- 2.7
- The messages you occassionally get when transporting down to a planet
- are held in code. If you want to see them, then type the following
- changes in immediate mode.
- 2.7
- LOAD “StarTrader”
- 2.7
- DELETE 0,39349
- 2.7
- DELETE 39560,39580
- 2.7
- DELETE 39640
- 2.7
- DELETE 39650,39690
- 2.7
- 39351 DIM CMG$(20)
- 2.7
- 39554 FOR T=0 TO 20
- 2.7
- 39651 NEXT
- 2.7
- PROCCLUE (If <ctrl-B> is used first, the messages can be sent to a
- printer.)
- 2.7
- There is a 50:50 chance of getting a clue on any planet landing. 16
- messages have a 95% chance of being called, the other 4 messages only
- 5%. The rumour sends you to a randomly chosen planet! Some messages are
- tradehints, some are adverts for other games(!) and a couple are very
- useful clues to the solution of the puzzle.
- 2.7
- The planets on which the segments are found and the code are chosen at
- the creation of the universe stage. RUN the game, then immediately save
- it. TYPE in CHEAT4 to get a list of planet numbers where the segments
- are. CHEAT4 also prints out the code letters. These are held in the
- array ZTX()
- 2.7
- 10 REM >CHEAT4
- 2.7
- 20 DIM PKLR(800),GR(800),ANAME$
- 2.7
- (800),TYP(800),SS(800),PO(800)
- 2.7
- ,STARSS(120),PX(120),PZ(120), PC(9),SP(9),PRC(13), UNI(120,12),ZTX(8)
- 2.7
- 30 BB=OPENIN(“:1.xxxxx”):REM
- 2.7
- change xxxxx to name of
- 2.7
- SaveGame file
- 2.7
- 40 INPUT# BB,SUN,DEATH,CELL,ENG,
- 2.7
- FS, PS,SS,AS,PTD,PSD,DAMCAP,HD, TE,NUMPT,PE,EPS,STDA,CRD,PN,SY
- 2.7
- 50 FORT=1TO800:INPUT# BB,PKLR(T),
- 2.7
- GR(T),ANAME$(T),TYP(T), SS(T),PO(T):NEXTT
- 2.7
- 60 FORT=1TO120:INPUT# BB,SARSS(T)
- 2.7
- ,PX(T),PZ(T):NEXTT
- 2.7
- 70 FORT=1TO9:INPUT# BB,PC(T),SP(T)
- 2.7
- :NEXTT
- 2.7
- 80 FORT=1TO13:INPUT# BB,PRC(T)
- 2.7
- :NEXTT
- 2.7
- 90 FORZ=1TO119
- 2.7
- 100 FORT=1TO12:INPUT# BB,UNI(Z,T)
- 2.7
- :NEXTT
- 2.7
- 110 NEXTZ
- 2.7
- 120 FORT=1TO8:INPUT# BB,ZTX(T)
- 2.7
- :NEXTT
- 2.7
- 130 CLOSE# BB
- 2.7
- 140 FOR LOOP=1 TO 9:PRINT PC(LOP),
- 2.7
- SP(LOOP)’:NEXT:REM planets
- 2.7
- 150 FOR LOOP=1 TO 8:PRINTCHR$(64+
- 2.7
- ZTX(LOOP)):NEXT:REM code
- 2.7
- You get a nice fanfare when you collect a segment. The percentage
- chances reported during a scan can be as low as 45% or as high as 90% on
- a planet which actually has a segment.
- 2.7
- If you have two drives, it is quite easy to use drive 1 as the GameSave
- drive (as in the program above). Just change (input$) in Lines 3770,
- 4020 and 4050 to (“:1.”+input$). Dave Kent
- 2.7
- • TV output from Archimedes? − It is possible to connect a TV to an
- Archimedes, though only in monochrome and via a video. Connect a wire
- (co-ax) from a phono plug plugged into the Archimedes mono video socket
- to pin 20 (centre core of Co-ax) and any one of the many 0V lines (i.e.
- connect the braid screen to 0V) on a SCART plug. This means that it only
- works on video machines with a SCART socket on them (if no SCART socket,
- then connect to VIDEO IN via a phono or BNC plug). This also means that
- you can make demo videos and stuff by taping the pictures. Sound can be
- connected to pins 2 and 6, I think, never tried it! (See Archive 2.2 p
- 6) Does anyone now how to convert the Archie mono out to colour?
- Plugging the Archie SCART cable to the video doesn’t work! Oliver
- Cornes.
- 2.7
- • Using First Mail − At first, I regarded First Word Plus as a very
- ordinary word processor. The need to keep reformatting with <f12> seemed
- to be a step backward. However First Mail changes the picture for me.
- Here are one or two ideas on how to use First Mail for handling ordinary
- day-to-day cor-respondence.
- 2.7
- I “merge from” a file carrying my letterhead. In fact I have a few
- different letterheads for different purposes. In addition to the
- letterhead my “from” file has the following First Mail commands:
- 2.7
- longdate
- 2.7
- input “address file?”, address
- 2.7
- input “text file?”, text
- 2.7
- includefile dat.address
- 2.7
- Dear
- 2.7
- includefile doc.text
- 2.7
- includefile dat.address
- 2.7
- (The bits in italic that should be in light type. It is not obvious
- which the light bits should be; but see the note on p. 206 of the First
- Word Plus manual.)
- 2.7
- The system asks me for an address file and then a file containing the
- text of the letter, both of which it merges with the letterhead. The
- second printing of the address comes after a hard page break. Since I
- specify pauses on page breaks, this allows me to remove the letter from
- the printer and replace it with the envelope (or sticker) for the second
- address to be printed on that. I can cancel this when I do the draft
- copy, which I keep for my own files. I save my letter texts in the doc
- directory and addresses in the dat directory. This allows me to use the
- same name for both if that is more convenient.
- 2.7
- Incidentally I use a brother daisywheel for most of my letter quality
- printing; and I have configured the driver to print my letterhead in
- bold red. A nice feature of First Word Plus is that you can have several
- drivers for the same printer if you give them different names. Not only
- that, but with a daisy-wheel you can have two configurations on the same
- driver by making the NLQ configuration different from the draft
- configuration, though of course, the terms draft and NLQ will have no
- real meaning for a daisywheel.
- 2.7
- There are some errors in the Brother driver supplied, by the way; so
- check with the manual, especially if you are Danish or are in the habit
- of using some of the more obscure symbols. The First Word Plus manual is
- a bit vague about full pathnames, too. For instance, to install a
- different default printer you have to type, say,
- 2.7
- *copy 1wp.cfg.epson_fx resources.
- 2.7
- 1wp.1wp_print
- 2.7
- I find the First Word Plus file window most useful for exploring discs.
- If you click on the window exit symbol you get the parent directory.
- Clicking on a directory name in the window lists that directory in the
- window as well as selecting it in the directory slot. Glyn Emery.
- 2.7
-
- 2.7
- We begin a new section this month to help you get to grips with RISC-OS.
- When you buy RISC-OS, you get a disc full of information from software
- houses (see list below) about how to get their software running under
- RISC-OS, but I suspect that because RISC-OS is so new, there will be
- lots for us all to learn − hence this column.We really need a volunteer
- to be the editor of this corner − someone to whom I can send all the
- info and who will then collate it, check it and regurgitate it to me
- (preferably via Eureka II for speed). Anyway, Mike Harrison, Matthew
- Treagus, Keith Milner and Ting Kuei start us off.
- 2.7
- • Flashing screens − I’ve just got hold of the release RISC-OS User
- Guide and noticed that it does not seem to mention the fact that in
- modes 21, 24 and 28, the screen blanks when accessing floppies, due to
- the high DMA rate. I’m sure many dealers will get calls from worried
- users who think that fitting RISC-OS has damaged their machine because
- of the screen flashing on and off!
- 2.7
- • Logistix − Logistix users must replace the Floating Point Emulator
- in the Library of the Log-istix Disc (version 2.50) with the later one
- which is supplied with RISC-OS, i.e. FPE version 2.60. It can also be
- found on the ABC Compiler Disc. If this is not done Logistix, will not
- run correctly.
- 2.7
- • TWIN − If, like me, you are annoyed at the delay in loading TWIN
- when editing programs, especially with BASIC using TWINO8, make an Obey
- file that does the following :
- 2.7
- Set Run$Path Ram:,<Run$Path>
- 2.7
- Copy Twin Ram:Twin f~c
- 2.7
- (Ensure that your configured RamFS size is big enough first!). After
- running this, Twin will be instantly loaded from Ram Disk. You can of
- course also include in the file a *Key command to define your favourite
- function key to call Twin, e.g.
- 2.7
- Key 1 |UTWINO8|M
- 2.7
- For BASIC. The |U deletes any crud which may have been on the command
- line before you hit <f1>.
- 2.7
- • Virsuses on RISC-OS!!! − I wonder how many people will look at this
- in panic. Don’t worry. There is a virus on RISC-OS, even before it is
- released, but it is totally harmless. In fact it is quite fun. First, a
- brief description of how most viruses work:
- 2.7
- Most business machines load their operating system from disk. So, in
- order to ‘virus’ one of these machines, the offending program just
- becomes part of the operating system in some way. It copies itself onto
- other discs with operating systems on and soon every copy of the OS you
- have is “infected”.
- 2.7
- On a sensible computer, such as the Archimedes(!) the operating system
- is on ROM, and cannot be altered! Thus if someone decides to write a
- virus program, once it is detected, turning the machine off will remove
- it. It is, however, possible to install a virus on other files on disc.
- This is much more difficult to do, is easier to detect and easier to
- remedy. For instance, the !BOOT file is a common file to be found on a
- disc, and a virus could conceivably attach onto this, although it would
- be very difficult since every !BOOT file is different.
- 2.7
- I will not disclose how the RISC-OS virus installs itself as it will
- only encourage people to write viruses. I will say, however, that once
- detected, it is ((very simple)) to remove it with no after effects. If
- the virus (which actually originates from Acorn!) appears on your disc,
- not much actually happensÉ or at least it appears that way. You are
- using the desktop as normal and suddenly, a small fish appears on the
- screen and swims across, behind all the windows, leaving a trail of
- bubbles which rise to the top of the screen and disappear. Several more
- fish swim backwards and forwards on the desktop until the machine is
- reset. This virus is totally harmless, the only ill effect is to use up
- a bit of processor time! In fact, I have installed it deliberately as it
- is quite relaxing!
- 2.7
- Another virus we have heard of is the FF8 virus which adds itself to
- filetype FF8 files. It displays a message and prevents the affected file
- from running on the 13th of the month.This it is a real pain if you are
- not careful, i.e. if you forget to turn the computer off before running
- a new program! There is a detector program available (downloadable from
- area 2 on Eureka II) but it will only check for the existence of the
- virus and will not destroy it.
- 2.7
- • Manuals − Q: When RISC-OS is available, does it mean that the
- manuals I purchased are outdated or will Acorn publish a cheap edition
- to add to it?
- 2.7
- A: The bulk of the PRM remains correct, however there is a wealth of
- brand new information and a new PRM will be out in due course, probably
- in three volumes!
- 2.7
- The following firms have provided help on RISC-OS compatibility. The
- information is on the Support Disc that comes with RISC-OS.
- 2.7
- Abacus Training Ltd
- 2.7
- Ace Computing
- 2.7
- Acorn Computers Ltd
- 2.7
- AVP Computing
- 2.7
- Cambridge Micro Systems Ltd
- 2.7
- Clares Micro Supplies Ltd
- 2.7
- Colton Software
- 2.7
- Dabs Press
- 2.7
- Dixon and Dixon
- 2.7
- Emmerich (Berlon) Ltd
- 2.7
- GEM Electronics
- 2.7
- Intelligent Interfaces Ltd
- 2.7
- Institute of Ophthalmologists
- 2.7
- Lendac Data Systems Ltd
- 2.7
- Lingenuity (Lindis International Ltd)
- 2.7
- Magenta Research Ltd
- 2.7
- Maze Technology
- 2.7
- Meadow Computers
- 2.7
- Minerva Systems Ltd
- 2.7
- Mitre Software Ltd
- 2.7
- Oak Professional Software Ltd
- 2.7
- Silicon Vision Ltd
- 2.7
- Watford Electronics Ltd
-
-
- • Floppy programs on hard discs − Here’s the best method I’ve come
- across of getting floppy programs to run on a HD machine. You need two
- FFF type files (or Obey if you want) One called ‘Floppy’ should contain:
- 2.8
- *CON. Drive 0
- 2.8
- *CON. NoBoot
- 2.8
- The other called Hard should be:
- 2.8
- *CON. Drive 4
- 2.8
- *CON. Boot
- 2.8
- If you put these in the library you can then
- 2.8
- *Floppy
- 2.8
- <ctrl-break>
- 2.8
- <shift-break>
- 2.8
- do whatever else
- 2.8
- <ctrl-break>
- 2.8
- *DIR :4
- 2.8
- *hard
- 2.8
- <ctrl-break>
- 2.8
- (This assumes you have a !Boot on your hard disc.) Martyn Lovell
- 2.8
- • Head alignment problems? − If you are getting disc errors and
- suspect that the problem might be head alignment, one way of confirming
- this is to use the disc copier program that you will find on Share-ware
- N¼2. The program does a check of the whole disc to find bad sectors. If
- one of the heads is misal-igned, you will probably find that all the bad
- sectors reported are on one or other of the heads. Then it’s time to
- take it off to your local dealer for repair.
- 2.8
- • Hearsay − If you need to change modem baud rates with ATB3 or ATB0
- after calling one remote system and before calling another, you can do
- so by using a dial prefix in the modem driver edit screen by putting
- “ATB3D” or “ATB0D” as appropriate.
- 2.8
- • Matrix Procedures and Functions − This was prompted by Steve Drain’s
- article in Archive 2.1 p.17 where he stated that a numerical method for
- the inverse of a square matrix needs a good guess of the inverse and
- uses the transposed matrix as a starting point. His excellent program
- has been timed to invert a 20 x 20 matrix to 1 part in 10^9 in approx-
- imately 10 seconds.
- 2.8
- A good guess or even a desirable result can be ob-tained by a procedure
- described below. It calculates an inverse of 20x20 matrix in about 280
- centisec-onds giving an error in the non-diagonal elements of the
- identity matrix of less than 1 part in 10^6.
- 2.8
- The method used is based on the following. The matrix M to be inverted
- is premultiplied by its transposed M‘, giving M’M. The result is
- decomposed in a lower triangular matrix L satisfying the identity
- LL’=M’M. Then I, which is the inverse of L, can be determined in a
- straight forward way. Matrix I’I thus equals the inverse of M’M, and
- finally I’IM‘ gives the result wanted. This is correct as can be seen
- when premultiplying a vector x by M giving a vector v, and solving for
- x.
- 2.8
- Mx=v ==> M’Mx=M’v==> LL’x=M’v ==> I’ILL’x=I’IM’v ==> x=I’IM’v
- 2.8
- In fact, this is the least square solution for vector x, i.e. r
- equations with c unknown variables ( r>=c ) are solved using the
- criterium that the sum of the squares of the deviations to a solution of
- vector x obtains a minimal value.
- 2.8
- The program presented below uses PROC lst_sq_inv to determine the
- ‘inverse’ Mi of any matrix M. If M is a square matrix then MiM = E and
- also MMi = E, E being the identity matrix. As an ‘extra’, the determi
- nant of the square matrix M can easily be calculated. To my knowledge
- the method is numerically very stable.
- 2.8
- 10 REM >Matrix_Inv
- 2.8
- 20 :
- 2.8
- 30 *********************************
- 2.8
- 40 REM Inverting an arbitrary matrix
- 2.8
- 50 REM E.D. Engelhardt, March 1989
- 2.8
- 60 *********************************
- 2.8
- 70 :
- 2.8
- 80 REM *** Generate random matrix M,
- 2.8
- col% columns and row% rows
- 2.8
- 90 CLS
- 2.8
- 100 PRINT‘“ Inverting an arbitrary
- 2.8
- matrix“‘
- 2.8
- 110 REPEAT:INPUT“ Rows :
- 2.8
- “row%:UNTIL row%>0
- 2.8
- 120 REPEAT:INPUT“ Columns <= rows :
- 2.8
- “col%:UNTIL col%<=row% AND col%>0
- 2.8
- 130 CLS:PRINT‘“ Rows : ”STR$row%
- 2.8
- ‘“ Columns : ”STR$col%
- 2.8
- 140 row%-=1:col%-=1
- 2.8
- 150 DIM M(row%,col%)
- 2.8
- 160 FOR r%=0TOrow%:FOR c%=0TOcol%:
- 2.8
- M(r%,c%)=RND(1)*SGN(0.5-RND(1)) :NEXT:NEXT
- 2.8
- 170 :
- 2.8
- 180 start%=TIME
- 2.8
- 190 :
- 2.8
- 200 REM Determine the ‘least square’
- 2.8
- inverse Mi of M. Result : Mi.M is equal to the identity matrix E.
- 2.8
- If rows = cols also M.Mi = E.
- 2.8
- 210 :
- 2.8
- 220 DIM Mi(col%,row%):PROClst_sq_inv
- 2.8
- (M(),Mi())
- 2.8
- 230 end%=TIME
- 2.8
- 240 :
- 2.8
- 250 PRINT‘“ Time(centisecs) : ”;
- 2.8
- STR$(end%-start%)‘’
- 2.8
- 260 :
- 2.8
- 270 PROCprint
- 2.8
- 280 END
- 2.8
- 290 ————————————————-300 DEFPROClst_sq_inv(R(),Ri())
- 2.8
- 310 REM Ri is ‘least square’ inverse
- 2.8
- of R, i.e. Ri.R = E (identity matrix). If rows = cols
- also
- 2.8
- R.Ri = E.
- 2.8
- 320 REM Dimensions R(v%,h%),Ri(h%,v%)
- 2.8
- ==> v% : rows , h% : columns
- 2.8
- 330 REM E.D. Engelhardt, March 1989
- 2.8
- 340 :
- 2.8
- 350 LOCAL RtR(),L(),I(),v%,h%,c%,r%,t%
- 2.8
- 360 v%=DIM(R(),1):h%=DIM(R(),2)
- 2.8
- 370 DIM RtR(h%,h%),L(h%,h%),I(h%,h%)
- 2.8
- 380 :
- 2.8
- 390 REM Determine transpose of R
- 2.8
- 400 FOR r%=0 TO v%:FOR c%=0 TO h%:
- 2.8
- Ri(c%,r%)=R(r%,c%):NEXT:NEXT
- 2.8
- 410 :
- 2.8
- 420 REM Calculate square matrix to be
- 2.8
- inverted
- 2.8
- 430 RtR()=Ri().R()
- 2.8
- 440 :
- 2.8
- 450 REM Calc lower triangle L of RtR
- 2.8
- 460 FOR c%=0 TO h%:FOR r%=c% TO h%
- 2.8
- 470 L(r%,c%)=RtR(r%,c%):t%=c%-1
- 2.8
- 480 IF t%>=0 FOR t%=t%TO0STEP-1:
- 2.8
- L(r%,c%)=L(r%,c%)-L(r%,t%)*
- 2.8
- L(c%,t%):NEXT
- 2.8
- 490 IF r%>c% THEN L(r%,c%)=L(r%,c%)
- 2.8
- /L(c%,c%) ELSE L(r%,c%)=SQR L(r%,c%)
- 2.8
- 500 NEXT:NEXT
- 2.8
- 510 :
- 2.8
- 520 REM If R is square (rows = cols)
- 2.8
- its determinant equals the product of the diagonal elements of L. The
- determinant of RtR equals the
- 2.8
- square of the determinant of L.
- 2.8
- 530 :
- 2.8
- 540 REM Invert triang matrix L to I
- 2.8
- 550 FOR c%=0 TO h%:FOR r%=c% TO h%
- 2.8
- 560 FOR t%=c% TO r%-1:I(r%,c%)=
- 2.8
- I(r%,c%)-L(r%,t%)*I(t%,c%):NEXT
- 2.8
- 570 IF r%>c% THEN I(r%,c%)=I(r%,c%)
- 2.8
- /L(r%,r%) ELSE I(r%,c%)=1/L(r%,r%)
- 2.8
- 580 NEXT:NEXT
- 2.8
- 590 :
- 2.8
- 600 REM Determine transpose L of
- 2.8
- inverse triangle I
- 2.8
- 610 FOR r%=0 TO h%:FOR c%=0 TO
- 2.8
- h%:L(c%,r%)=I(r%,c%):NEXT:NEXT
- 2.8
- 620 :
- 2.8
- 630 REM Inverse matrix of R is Ri
- 2.8
- 640 RtR()=L().I():Ri()=RtR().Ri()
- 2.8
- 650 :
- 2.8
- 660 ENDPROC
- 2.8
- 670 ————————————————-680 DEFPROCprint
- 2.8
- 690 VDU 14
- 2.8
- 700 PRINT“ ******** Elements Matrix”‘
- 2.8
- 710 FOR r%=0 TO row%:FOR c%=0 TO
- 2.8
- col%:PRINT M(r%,c%):NEXT:PRINT:NEXT
- 2.8
- 720 PRINT“ ******** Elements inverse
- 2.8
- Matrix“‘
- 2.8
- 730 FOR r%=0 TO col%:FOR c%=0 TO row%
- 2.8
- :PRINT Mi(r%,c%):NEXT:PRINT:NEXT
- 2.8
- 740 DIM E(col%,col%)
- 2.8
- 750 E()=Mi().M()
- 2.8
- 760 PRINT“ ******** Elements of
- 2.8
- Inverse_Matrix.Matrix“‘
- 2.8
- 770 FOR r%=0 TO col%:FOR c%=0 TO col%
- 2.8
- :PRINT E(r%,c%):NEXT:PRINT :NEXT
- 2.8
- 780 VDU 15
- 2.8
- 790 ENDPROC
- 2.8
- • Repton 3 − There is a bug in screen E of WORK, so to get past it,
- you will need to know the next password which is COUNTER.
- 2.8
- • Three floppies under Arthur − Here is a solution to the problem of
- three floppies on the desktop (Archive 2.7.12). Enter the following in a
- file called ‘Desktop’ in the library directory, use *BUILD or a text
- editor such as Twin to enter it.
- 2.8
- *BASIC
- 2.8
- LOAD “DESKFS:DeskTopMgr2”
- 2.8
- 11 OSCLI “DESKFS”
- 2.8
- 12291 IFfloppies%>2 THEN PROCsys_
- 2.8
- addtoiconbar_left(“floppy2”,
- 2.8
- “disc3.5”,&301A,icon_fgcol,
- 2.8
- icon_bgcol, icon_width%)
- 2.8
- 28600 DEFFNselect_floppy2
- 2.8
- 28610 =0
- 2.8
- 28620 DEFFNmenu_floppy2
- 2.8
- 28630 PROCsys_definetextmenu
- 2.8
- (“floppy2”,“floppy :2”,“Format”)
- 2.8
- 28640 =0
- 2.8
- 28650 DEFFNaction_floppy2
- 2.8
- 28660 =FNfilehandler_open_dir
- 2.8
- (“-adfs-:2”,“Floppy :2”,0)
- 2.8
- 28670 DEFFNmenuselect_floppy2
- 2.8
- 28680 CASEitem0% OF
- 2.8
- 28690 WHEN0: PROCfilehandler_
- 2.8
- formatfloppy(“2”)
- 2.8
- 28700 ENDCASE
- 2.8
- 28710 =0
- 2.8
- RUN
- 2.8
- When you wish to use the three floppy version of the desktop, instead of
- typing *DeskTop, enter */DeskTop, this will ensure that the upgrade
- program in the library directory is run instead of activating the
- desktop in the normal way.
- 2.8
- Unfortunately, there is no way of permanently updating the desktop so
- that you can power up into the desktop with three floppies since it is
- held in ROM which obviously cannot be changed.
- 2.8
- If you wish to power up in the desktop with three floppies then you
- could do the following:
- 2.8
- *Configure Boot
- 2.8
- *Configure Language 0
- 2.8
- and setup a !Boot file as follows:
- 2.8
- */Desktop
- 2.8
- ensure that when you switch the computer on, your boot disc is in drive
- 0 (or your default drive as configured with *Configure Drive) and the
- desk top will appear after a short delay.
- 2.8
- N.B. No damage will be caused to the disc in powering up with the disc
- in the drive since the latch will be across the disc surface and the
- disc heads not in contact with the disc surface.
- 2.8
- The other solution is to upgrade to RISC-OS which can support up to four
- floppies! Darren Jackson
- 2.8
- • Zarch − To put Zarch onto a hard disk, use....
- 2.8
- *UNPLUG SoundChannels
- 2.8
- *ZARCH
- 2.8
- When error occurs type the following,
- 2.8
- *RMREINIT SoundChannels
- 2.8
- *SAVE :4.ZARCHcopy 8000+20800
- 2.8
- *BUILD :4.ZARCHgo
- 2.8
- LOAD ZARCHcopy
- 2.8
- MEMORYA E1AC E1A0F00E
- 2.8
- CHANNELVOICE 1 6
- 2.8
- CHANNELVOICE 2 7
- 2.8
- CHANNELVOICE 3 8
- 2.8
- CHANNELVOICE 4 9
- 2.8
- GO 1FF30
- 2.8
- Then press <escape>. Type ZARCHgo to run the copy from hard disk. Tony
- Porter
- 2.8
-
- 2.8
- First Word Plus Extended Dictionary
- 2.8
- I was asked to review the First Word Plus Extended Dictionary which is
- available from Science Frontiers. It seems unfair to review it in only
- one paragraph, but Paul’s maxim is, “Space in Archive is at a premium,
- so say what is worth saying as briefly as possible, then shut up!”
- (Well, that’s the jist of what I say! Ed.)
- 2.8
- First Word Plus Extended Dictionary comprises an 80,000 word dictionary
- which replaces that in the Acorn package, and three specialized
- supplementary dictionaries covering computer terms, geographical
- locations and Christian names. It is an entirely competent package,
- though necessarily not the most fascinating in content. If you need more
- words in your dictionary, buy it, but if you need to work with large
- documents, do not load it, as bigger dictionaries do take up more space.
- 2.8
- FWP Extended Dictionary costs £6.95 (£6.50 from Archive) and is produced
- by Science Frontiers.
- 2.8
- From FWP to DTP?
- 2.8
- Although it is not strictly the business of the First Word Plus column,
- I took a good look at the Desktop Publishing program when visiting the
- Acorn stand at the Which Computer? Show. It should be available a few
- weeks after RISC-OS and is reported to be “finished” and about to go
- into production. However, it was apparently not the “finished” version
- at the show. My informant assures me that the production version will be
- even better, which should certainly be good indeed. Even the present
- version has a ‘secret’ feature which is quite impressive and even Apple
- cannot match it.
- 2.8
- <ctrl−A> Solution?
- 2.8
- I have discovered why my “<ctrl-a> makes a bleep” modules reported in
- Archive 2.5 p. 18 absolutely refused to work: the answer is on the top
- of page 34 of the Programmer’s Reference Manual: never use OS_WriteC
- routines when you have intercepted an interrupt. The solution (but don’t
- hold your breath) is to insert a <ctrl-g> into the input buffer. This
- works absolutely perfectly − except in FWP, where it is interpreted as a
- call to read the ruler!!
- 2.8
- No-one else has produced a solution which actually works, so the small
- prize is still unclaimed.
- 2.8
- Shareware disk N¼6
- 2.8
- We get a lot of enquiries about printer drivers. The problem is that we
- do not have that many different kinds of printer, so cannot help much.
- Besides, printer drivers are (however necessary and satisfactory a
- solution they may be) a pain and a bore, except when they are to drive
- the printer you use. I am trying to compile a disk of all the contrib
- uted “goodies”, especially printer drivers and related information and
- ideas. If you have a contribution, please let me have it in the next
- couple of weeks. We have printer drivers for: Taxan-Kaga KP810 = Canon
- PW 1080; Citizen 120; Epson LX800 and LQ500; Star LC10 and NL10;
- Panasonic KXP1080; H-P DeskJet. Quite a few of these have interesting
- variants and associated ideas which may be useful for doing the special
- things you want to do with your printer.
- 2.8
- Once the shareware disk is available, printer driver enquiries will be
- at the bottom of the pile!
- 2.8
- (Mike sent me a pre-release version of this which I published as
- Shareware N¼6, thinking it was the finished article. Ooops! We will
- continue to supply N¼6 as it is and then offer free up-grades when the
- final version is ready. Sorry about that! Ed.)
- 2.8
- Two related matters
- 2.8
- • If you get the monthly disk, you will probably have installed the
- IntModule from Steve Hoare (Archive 2.6, p. 44), and you will agree with
- me that it is quite the best thing that has happened to First Word Plus
- since its launch! I am sure that my life-expectancy has been increased
- by being able to access the “*” commands we all love (and hate). If you
- have not installed it, copy the IntModule to your 1st Word startup disk,
- then modify !boot by adding lines 23 and 26 as follows:
- 2.8
- 23 *rmrun IntModule
- 2.8
- 26 *Interrupt 15
- 2.8
- Now if you press <ctrl-o>, the screen goes bright blue and gives you a *
- prompt. Create your directories, mount disks or whatever, then just *
- <return> and you are back. Wonderful. If you do not get the disks, more
- fool you, this one was worth a year’s subscription, but it will be on
- the proposed “shareware” disk.
- 2.8
- • Just who do you think we are? Not very different from you is the
- answer, I guess. I suspect that most of the contributors to Archive are
- either people who enjoy computers as a hobby which can be useful, people
- who use computers as part of their work, but are not professionals in
- computing, or students or teachers of computing. I am actually a vet.
- who does human genetics and immunology research, approaching fifty, bald
- and paunchy! The point is, please do not expect too much from us/me. I
- actually took this column on when a broken collar-bone got in the way of
- decorating! Sadly, bones healÉ
- 2.8
- Two quickies
- 2.8
- • If you have more than one sprite in a file, FWP only loads the first
- sprite.
- 2.8
- • There is a funny bug in the spelling list : FABRICATION is flagged
- as wrong, but it appears when you browse. To add confusion, when you ask
- to guess, it comes up with faArication, which is unbrowsable!! Thanks to
- Colin Garlick. A review of letters received earlier reveals that the
- problem is more widespread than this: Kenneth Gardner rep-orts that the
- same (?) bug affects fable, fabric, -ate, -ated, -ation, fabulous, -ly,
- fab, haar, maar, nascelle, oaf, zag. Kenneth provides more data on
- making merged supplementary dictionaries, but the problem is obviously a
- bug. Over to you Acorn!
- 2.8
- FWP and RISC-OSÉ
- 2.8
- The support disk which comes with RISC-OS has the necessary instructions
- for conversion and the files. It is in the Acorn directory.
- 2.8
- It may be easier to have Edit installed and the mode set to 0 before you
- start. Then you can have a decent RAMfs space for the copied files
- (assuming you do not have two drives). You can keep the instructions in
- sight this way.
- 2.8
- Éand the IntModule
- 2.8
- It is all quite smooth, but if you want the splendid IntModule facility
- to give you access to the OS, it is a bit more complicated. Edit has no
- “load” command. You load things by grabbing their icons and dropping
- them on the installed Edit icon. But it is not obvious how to get at the
- “Obey” files in the !1stWord+ directory from the desktop. The secret is
- to hold down shift while clicking on the !1stWord+ directory. You should
- be a bit careful about what you do, so make a backup before mucking
- about. Now edit it as follows:
- 2.8
- a) (This is most important.) Rename the !Run file you got from the
- Support Disc as, e.g. !RunAcorn.
- 2.8
- b) Insert tthree lines before that beginning “run” (next to last) (the
- third line is optional − it turns the caps lock off)
- 2.8
- rmload $.intmodule
- 2.8
- interrupt 15
- 2.8
- fx202,48 REM
- 2.8
- c) Save as !Run
- 2.8
- d) Check that the file type is obey. If not, get an OS prompt by
- pressing f12 on the desktop and “Setfiletype !run obey”.
- 2.8
- e) Remember to copy IntModule onto the disk in directory $.
- 2.8
- It should work, accessing the OS when <ctrl-O> is pressed, though I get
- a white border around the top and right after going to the OS but it
- seems to go away, though.
- 2.8
- I suspect there are a few missing twiddly bits about ensuring that the
- correct directory names are used, so I still have some reading to do.
- More next month!
- 2.8
- It also happens that you can edit obey files in FWP, and further, FWP is
- not squeemish about loading the “Obey” files from an application
- directory. If you do this you will certainly have to set the filetype.
- 2.8
- First Mail
- 2.8
- Here are a couple more tips on 1st Mail from Glyn Emery:
- 2.8
- Mail merging normally means sending the same, or very slightly differ
- ent, letters to a number of recipients. I recently had occasion to turn
- this process on its head and send several different letters to the same
- recipient; but I found 1st Mail up to the task. The occasion was that I
- had to write reports on a batch of candidates, which, for the conveni
- ence of his filing system, I prepared in the form of a batch of separate
- letters all addressed to the administrator involved. To print them I
- prepared a “merge from” file as follows:
- 2.8
- read text
- 2.8
- display “text letter started”
- 2.8
- includefile letterhead
- 2.8
- includefile dat.administrator
- 2.8
- Dear Mr Administrator
- 2.8
- includefile doc.text
- 2.8
- Yours sincerely
- 2.8
- display “letter finished”
- 2.8
- repeat
- 2.8
- “text” here is used as a 1st Mail keyword. The file “letterhead”
- incorporates the date. I put a hard page break just before the repeat
- command to make the sheet-feeder on my printer pick up the next piece of
- A4. The “display” commands were put in during development and proved to
- be too confidence-giving to be deleted. The file dat.administrator is
- the administrator’s address.
- 2.8
- The reports, together with a covering letter were prepared as separate
- files; and a datafile was prepared listing the file names. This was
- saved in the dat. directory, not forgetting to switch off WP mode before
- saving it. If you don’t switch off WP mode the merge tends to “hang”. I
- don’t know why.
- 2.8
- The second point is that I have incorporated Steve Hoare’s IntModule
- (Archive 2,6 p44) into the libraries of my letter-writing discs.
- Unfortunately Steve’s suggestion to use <ctrl-@> does not quite work for
- me, because the £ key seems to return ASCII 0 in the First Word Plus
- context, presumably in order that different codes for £ can be included
- to satisfy different printers. Steve, being in America, probably had no
- occasion to notice this. What I did in the end was to include
- 2.8
- *RMLoad %.IntModule
- 2.8
- *Interrupt 205 1stMail
- 2.8
- into the startup program for First Word Plus, and
- 2.8
- *RMLoad %.IntModule
- 2.8
- *Interrupt 205 1stWord+
- 2.8
- into the startup program for 1stMail. I can then use the “insert” key to
- toggle between the two, and save quite a lot of keystrokes in doing so.
- Notice that I had to use % in the RMLoad command but not in the
- Interrupt command because % appears in my Run$Path but not in my
- File$Path.
- 2.8
- An interesting application for FWP
- 2.8
- Dave Livsey
- 2.8
- Those of you who, like me, have to report on the progress of large
- numbers of individuals of various levels of ability (i.e. teachers!) and
- are the proud possessors of an Archimedes and First Word Plus now have
- the means to reduce the increasingly onerous task of reporting, imposed
- by the introduction of ‘records of achievement’ (ROA). (If you do not
- have First Word Plus, or something better, you deserve all the hard work
- you have to do!) Using First Word Plus, it is fairly easy to set up a
- ‘Mail merge’ which will print out the documents required for the ROA.
- 2.8
- The clue to doing this lies in the example mail-merge letter on the
- First Word Plus disk. As with most problems, there are probably many
- (or, at least, a few) different solutions − this is one. I hope it will
- help reduce your load as much as it has mine!
- 2.8
- In all that follows, the underlined words below are supposed to be in
- light type which I am unable to print in Elite type. The page numbers
- refer to the First Word Plus handbook.
- 2.8
- In outline, you will need to set up four files: a command file, a data
- file, a file containing the com-ment bank and the ‘main’ file (which
- corresponds to the letter in the mail-merge example).
- 2.8
- The command file (called ‘command’): This needs to contain the informa
- tion which indicates the location of the data file (see below), any
- individual input to the ROA document (‘input’ typed in ‘light’ type
- p.165 − 169 ) and a reference to the basic form as an ‘includefile’
- statement. The WP mode can be left switched on when creating this file
- and saving it.
- 2.8
- The data file (‘formdata’) must be created in the dat. directory and
- contains only the data you wish to be inserted into the final document
- as it is printed and is simply a list of names (firstname, secondname),
- sex (He/She), tutor group (or Form, or whatever cockeyed system your
- educational establishment has decided to inflict on you), date and any
- other required information. As pointed out in the handbook, each item of
- data must be separated from the next by a comma. There is also a problem
- of commas in an item of data but this is catered for by enclosing them,
- as explained on p.165. A specimen layout could be as shown :
- Fred,Bloggs,He,4Z,Nov 1988,Swahili
- 2.8
- Note that the data fields are comma separated fields and may include
- spaces (p.165). This file must be created in non-WP mode and the mode
- left switched off when saving; ignore the pop-up reminder which appears
- when you try to save the file.
- 2.8
- The comment bank file (‘ROA’), obviously, contains all the comments
- which you may wish to make about any group of students. Each comment is
- prefixed by a suitable identifier e.g. K1. In order to be able to use
- these comments, each identifier must be set up as a keyword (p.163) by
- preceding it with ‘setval’ in light type e.g.
- 2.8
- setval K1, “name1 is a complete idiot when it comes to practical work.
- sex is a complete liability as sex has 11 thumbs on two left hands.”
- 2.8
- Note the <,> and the <“>. I found that it was easier to type the comment
- with the WP mode switched on and then to switch the WP mode off and move
- all the text onto one line. The WP mode was then switched on again as
- the document does not print out correctly otherwise.
- 2.8
- The setval definition seems to need all the text on one line but as this
- can be 160 characters long, that is not too much of a problem. These
- definitions can also contain key words, in light type, for insertions
- from the data file into the final document. This is useful as it means
- that you can specify he or she along with the name in the data file.
- N.B. Changing the ruler turns off the ‘light’ type causing the defini
- tions and insertions to be ignored in the final print-out.
- 2.8
- The final file (called ‘form’); the document you are going to print,
- contains very little other than keywords spaced out as is appropriate
- for your ROA. The first line must be a read statement which, being a
- keyword is in light type. Following this is a list of fields in ordinary
- type and in the same order as in the data file. The rest of the file is
- mainly spaces preceded by a keyword placed where you want your printing
- to be done. Eg.
- 2.8
- read name1,name2,sex,date,tutor, subject (reads from ‘formdata’)
- 2.8
- name1, name2 tutor subject date
- 2.8
- includefile ROA (this reads in the comment bank)
- 2.8
- name1 K1 (prints “Fred is an idiot .....”)
- 2.8
- sex C3 (prints in the comment on comprehension)
- 2.8
- sex I1 (prints in the comment on intelligence) etc.
- 2.8
- This file will, of course, need the WP mode swit-ched on in order to
- retain all the formatting infor-mation which is necessary for the
- automatic form-atter to work when insertions are made in the text.
- 2.8
- The ROA is printed out by clicking on ‘form’ and ‘formdata’ (from the
- doc. directory) using the mail-merge facility on the First Word Plus
- disc. Full details of this are given in the Handbook.
- 2.8
- Font Fiddling on First Word Plus
- 2.8
- Reg Dalton (& Steve Bass)
- 2.8
- Reg tells us the saga of creating character sets for First Word Plus and
- his NEC P2200. A sample printout is shown opposite, and the programs and
- printer drivers are on the program disc and downloadable from Eureka II.
- 2.8
- In an earlier edition of Archive (1.12 p 7) was printed a short routine
- to convert the extra fonts, supplied on the Master Welcome disc, from
- BBC to Archimedes format. On the face of it, this looked as if it would
- be a useful little routine but there was a problem; only half of the
- character set was defined. i.e. characters 32 to 126. My friend Steve,
- in his wisdom, decided that one of the fonts (7by8) looked very good
- with First Word Plus and decided to redefine the rest of the characters
- to match the ones already done.
- 2.8
- The next step in the story was when I foolishly mentioned that it would
- be quite simple to set up First Word Plus to utilise the IBM graphics
- available in one of the alternative character sets within the printer we
- both had (NEC P2200). We then decided that redesigning the fonts using
- the Master was not the way to do this, mainly because the fonts would
- then have to be converted to Archimedes, so we converted the CHARDES
- program, which was mainly in BASIC, to a form that would save fonts in
- the correct format and also run with the Archimedes mouse.
- 2.8
- The problem of modifying the program to work on the Archimedes was not
- too difficult by even an amateur programmer’s standards but to make it
- save the font in its correct form for the Archimedes proved more
- problematical. A number of abortive attempts were made to rewrite the
- save font routine but each time nothing was achieved except making the
- computer’s character set look like hieroglyphics. Eventually, it all
- fell into place and we had a working program.
- 2.8
- We then decided that a program for transposing characters within the
- character set itself might not be a bad idea. This was written fairly
- speedily, but then the next task was to create the printer driver for
- First Word Plus. This marathon is usually achieved by modifying an
- existing wordprocessor/printer driver file, which involves changing the
- relevant values for the various functions listed within the file, e.g.
- superscript, subscript, nlq etc. After this fairly simple part comes the
- task of entering all the codes to achieve the extra characters which
- cannot enter from the keyboard. For characters 32 to 127 this was
- obviously quite simple as all that was needed in this instance was each
- character’s number, but it was soon noticed by both of us that the
- characters between &80 and &9F (decimal 128 to 159) were not defined by
- the existing list. After an abortive attempt to define these characters,
- and failing to get them to install, it was decided that we would have to
- discard 32 (yes a whole 32) of the characters so lovingly designed by
- Steve.
- 2.8
- Notes on the font fiddling programs
- 2.8
- (These refer to programs on the monthly disc.)
- 2.8
- 1 !BOOT is the program for interchanging the position of the
- characters.
- 2.8
- 2 After running the above program, the Acorn Character Designer
- Program (modified for use on the Archimedes), Chardes_C, can be entered
- and 1 above repeated as many times as necessary.
- 2.8
- 3 The modified Printer driver for 1WP is in the CFG directory.
- 2.8
- 4 The modified Printer driver hex file for 1wp is in the HEX
- directory.
- 2.8
- 5 Before booting the disc, the font style to be modified must first be
- loaded e.g. by using *NEC_Afont.
- 2.8
-
- • External drive hang-ups − If you have an external 5.25“ drive
- configured and it is not kept on-line (i.e. it is switched off) then the
- machine hangs up if the ADFS is searching for a named disc which is not
- in drive 0 at the time that the command was issued, e.g. when attempting
- to copy file(s) from one 3.5” disc to another. The solution appears to
- be either always have the external drive switched on, or to configure it
- out of the system during periods when it is switched off.
- • GWBASIC to BBC BASIC − I wanted to convert a GWBASIC program to a
- BBC BASIC one, but both BASIC’s store programs with the keywords
- tokenised. Therefore I needed the equivalent of the *SPOOL command. The
- answer seems to be that from GWBASIC either:
- SAVE “filename”,A
- or
- LIST ,“filename”
- Both give a version of the listing which, when ported across via
- putfile, can be *EXEC-uted.
- • Mouse problems − I had a problem with my mouse. Sometimes when I
- moved the mouse down, the pointer moved UP. At other times it worked
- perfectly. I tried everything − including measuring the electronics
- inside the mouse, and inside the keyboard, adjusting the sensitivity and
- cleaning the inside and outside of the mouse. Finally I discovered that
- the problem was a broken wire in the cable out from the mouse. Odd
- Bakken
- 2.9
- • NEC multisync modifications − With a NEC multisync II monitor, I
- found that the horizontal width of the picture was not optimal. There
- was a black border on each side of the picture and, in modes 18-20, the
- picture was even smaller, making the letters a little hard to read. I
- called the local dealer and got a copy of their service manual. You can
- adjust the horizontal size with coil L505. I got some improvement by
- removing the core of the coil but not enough. So I shorted the coil
- completely (after consulting the dealer, who said it would not harm the
- monitor). By doing this I got a 10% wider picture. (I still have the
- distortion of the top lines in mode 18-20.) Odd Bakken
- 2.9
- • OS_PrettyPrint − There has been very little in the literature about
- the use of OS_PrettyPrint to avoid word wraparound in, for example, the
- preparation of instruction notes at the beginning of a program. (You can
- use SYS &44 instead of writing the full command). All that is needed is
- a simple BASIC program such as :
- 2.9
- 10 SYS &44,“<Block of words>”
- 2.9
- 20 PRINT;“ ”;:REM Insert space
- 2.9
- or 20 PRINT:REM New Line
- 2.9
- 30 SYS &44,“<Continuation of
- 2.9
- text>“
- 2.9
- 40 PRINT;“ ”; etc.
- 2.9
- The text in line 30 continues from the point where it ended in line 10.
- Unfortunately the OS command strips the leading and trailing spaces from
- the block of text. The PRINT statements are therefore necess-ary to
- separate the end of the text in line 10 from the beginning of the text
- in line 30 or to force a new line. The word block length has the
- standard BASIC line limitation which amounts to roughly three lines of
- text in the 80 chars/line modes. The command works in any mode and by
- judicious placing of PRINT and COLOUR statements you can have sections
- of the text or even single words in colour.
- 2.9
- • Pipedream and the LC10 − To print in colour on a Star LC 10 colour
- printer, if Pipedream is config-ured with a printer driver which
- includes the follow-ing codes, the various printing styles available on
- the Star LC 10 C can be selected when the printer is switched on, and
- printed in colour.
- 2.9
- On Off Description
- 2.9
- H1 27 114 1 27 114 0 Red Text
- 2.9
- H2 27 114 2 27 114 0 Blue Text
- 2.9
- H3 27 114 3 27 114 0 Violet Text
- 2.9
- H4 27 114 4 27 114 0 Yellow Text
- 2.9
- H5 27 114 5 27 114 0 Orange Text
- 2.9
- H6 27 114 6 27 114 0 Green Text
- 2.9
- • Pipedream line spacing − (Colton Software’s reply to a request for
- 1.5 line spacing on Pipedream) Pipedream knows only integral line
- spacing; single, double etc, but the line spacing on the printer can be
- set independently by sending out some codes with the printer-on string
- (PON). For example, PON ESC “2” would give 1.5 line spacing on
- Epson compatible printers.
- 2.9
- • Multi Sync Owners! Out here in New Zealand, the average multisync
- monitor costs about £60 more than the standard Acorn monitor. As a
- result around 60-80% of Archimedes owners have multisync’s. I haven’t a
- clue as to why they are so much dearer in the U.K. but suggest that
- someone somewhere is making a great deal of money! Most of the programs
- available don’t provide a multisync option which is a real shame as that
- extra 256 pixels make all the difference. I’ve tried to convert some
- programs but haven’t had much luck except for Render Bender.
- 2.9
- To convert Render Bender proceed as follows:
- 2.9
- Make a new backup of your Render Bender System Disc. Label it “Render
- Bender Modes 15 & 21” or somesuch. Enter BASIC and load the main program
- “!RENDER.RENDER”. Change or add the following lines.
- 2.9
- 60 DIM loadadd &F100,sb1%32*1023
- 2.9
- :org=loadadd+&A100
- 2.9
- 2550 XRES=640:YRES=256:SC%=100:
- 2.9
- DES=1000:IND=1.5:SKYCOL=13
- 2.9
- :SKYDEP=600:AVE=1:SHAD=1:SHGR=0
- 2.9
- 2950 IF YRES=256 AND SCRADD%<=
- 2.9
- &1FB0000 YRES=512:PROCbox
- 2.9
- (17,16,14,2,“HIGH*RESOLUTION”
- 2.9
- ,14,0):ENDPROC
- 2.9
- 2960 YRES=256:PROCbox(17,16,14,2,
- 2.9
- “LOW*RESOLUTION”,14,0):ENDPROC
- 2.9
- 3981 IF RES=320 THEN XRES=640:
- 2.9
- YRES=256
- 2.9
- 13590 vars!xlim=XL:vars!ylim=YL
- 2.9
- :vars!reso=XRES
- 2.9
- 14010 A$=LEFT$(name$,8):A$=A$+
- 2.9
- STR$FILFR%:IF YRES=256 ENS%
- 2.9
- =&28000 ELSE ENS%=&50000
- 2.9
- 14090 XL=XRES/SIZE%:YL=YRES/SIZE%
- 2.9
- :PROCcoeffin
- 2.9
- 14110 IF YRES=256 MODE15 ELSE MODE21
- 2.9
- 14190 IF YRES=256 MODE15 ELSE MODE21
- 2.9
- 14280 XL=XRES/SIZE%:YL=YRES/SIZE%
- 2.9
- :PROCcoeffin:SCROFF%=1
- 2.9
- :PROCisflooron
- 2.9
- 14290 IF YRES=256 MODE15 ELSE MODE21
- 2.9
- 15150 IF YRES=256 PROCbox(17,16,14,2,
- 2.9
- “LOW*RESOLUTION”,14,1)ELSE PROCbox
- 2.9
- (17,16,14,2,“HIGH*RESOLUTION”,14,1)
- 2.9
- 11320 GCOL63 TINT 255:VDU5:IF
- 2.9
- YRES=256 PRINTTAB(0,31);“Click
- 2.9
- Mouse“ ELSE PRINTTAB(0,62);
- 2.9
- “Click Mouse”
- 2.9
- 14380 GCOL63 TINT255:IFYRES=256
- 2.9
- PRINTTAB(0,31);“Time taken ”;
- 2.9
- :PROCtime(TI) :GCOL 25:PRINT;
- 2.9
- “ Click mouse” ELSE PRINTTAB(0,62);“Time taken ”; :PROCtime(TI):GCOL 25:
- 2.9
- PRINT;“ Click mouse”
- 2.9
- SAVE “:0.$.!RE*.RENDER”
- 2.9
- Then to modify the Picture Compressor
- 2.9
- $.!RE*.UTIL*.PICCOMP
- 2.9
- *BASIC
- 2.9
- *LOAD :0.$.!RE*.UTIL*.PICCOMP 8F00
- 2.9
- *ACCESS :0.$.!RE*.UTIL*.PICCOMP WR
- 2.9
- !&90C0=&E3520015
- 2.9
- !&90C4=&03A0B805
- 2.9
- !&92F0=&E3500015
- 2.9
- !&92F4=&03A08805
- 2.9
- *SAVE :0.$.!RE*.UTIL*.PICCOMP 8F00+534
- 2.9
- *SETTYPE :0.$.!RE*.UTIL*.PICCOMP &FFA
- 2.9
- To modify the Animator
- 2.9
- *BASIC
- 2.9
- LOAD“:0.$.!RE*.UTIL*.ANIROUT”
- 2.9
- 140DIM buff &50000,DUM 1:anipo%=DUM
- 2.9
- +&6000:PROCboot:!anipo%=0
- 2.9
- 1371IF !mode=21 length%=&50000
- 2.9
- 2251IF MODE=21 length%=&50000
- 2.9
- SAVE “:0.$.!RE*.UTIL*.ANIROUT”
- 2.9
- Finally to get Render Bender going you need a new startup file
- 2.9
- *BUILD :0.$.Rend21
- 2.9
- *ECHO <22> <21>
- 2.9
- *SET RENDER :0.$.!RENDER
- 2.9
- *set OBEY$DIR adfs::0.$.!RENDER
- 2.9
- *set FROM$DESK 0
- 2.9
- *SET RendHard1 adfs::4.$.GRAPHICS.
- 2.9
- !Render \ or your path here
- 2.9
- *SET HardRoot $
- 2.9
- *RMLOAD <RENDER>.Utilities.FSLOAD
- 2.9
- *RMLOAD <RENDER>.Utilities.PicComp
- 2.9
- *BASIC <RENDER>.START
- 2.9
- <Escape>
- 2.9
- *SETTYPE :0.$.Rend21 &FFE
- 2.9
- Then to run Render Bender using:
- 2.9
- *CO. SCR. 320K
- 2.9
- <ctrl-break>
- 2.9
- *:0.$.Rend21
- 2.9
- All this is supplied on the monthly program disc as a series of exec
- files so to modify Render Bender you just do this (where <comment>=just
- that!)
- 2.9
- <insert Render Bender Disc>
- 2.9
- LOAD“:0.!RENDER.RENDER”
- 2.9
- <insert program disc and *MOUNT or
- 2.9
- use winnie>
- 2.9
- *EXEC Rendermods.RendMods
- 2.9
- <insert Render disc and *MOUNT>
- 2.9
- SAVE “:0.$.!RENDER.RENDER”
- 2.9
- LOAD “:0.!RENDER.UTIL*.ANIROUT”
- 2.9
- <insert my disc and *MOUNT or use
- 2.9
- winnie>
- 2.9
- *EXEC Rendermods.AniMods
- 2.9
- <insert Render disc and *MOUNT>
- 2.9
- SAVE “:0.!RENDER.UTIL*.ANIROUT”
- 2.9
- COPY Rend21 across to $ <On Render
- 2.9
- Disc!>
- 2.9
- *WIPE $.!RE*.U*.PICCOMP F~C <get rid
- 2.9
- of old PicComp>
- 2.9
- COPY PicComp across to $.!RENDER.
- 2.9
- UTILITIES <On Render Disc!>
- 2.9
- then you should be ready to go!
- 2.9
- • Eigenvalues of a matrix − The following program is meant for readers
- who are interested in the determination of eigenvalues of a matrix. It
- is based on the idea that the eigenvalues of a matrix do not change by a
- similarity transformation. Decomposing a square, symmetric matrix S in
- its lower and upper triangular forms (L and U respectively satisfying
- LU=S) gives a new matrix UL having the same eigenvalues as S, since UL =
- (U^−1)ULU. It can be proved that by repeating this process, a matrix is
- obtained containing zero elements, except for the eigenvalues residing
- on the main diagonal.
- 2.9
- Consider an arbitrary matrix M, having a number of rows equal to or
- greater than its number of columns. Then M’M (M‘ standing for transposed
- of M) is a square, symmetric matrix having the same eigen-values as M.
- Some of these values may equal zero indicating that the dimensionality
- of M is smaller than its number of columns. Or in other words, the
- matrix spans an x-dimensional space, where x equals the number of non-
- zero eigenvalues of M.
- 2.9
- 10 REM >Eig_values
- 2.9
- 20 :
- 2.9
- 30 ********************************
- 2.9
- 40 REM Eigenvalues of an arbitrary
- 2.9
- 50 REM matrix. E.D. Engelhardt,
- 2.9
- March 1989
- 2.9
- 60 ********************************
- 2.9
- 70 :
- 2.9
- 80 PROCinit
- 2.9
- 90 :
- 2.9
- 100 PROCmenu
- 2.9
- 110 :
- 2.9
- 120 PROCinput
- 2.9
- 130 :
- 2.9
- 140 start%=TIME
- 2.9
- 150 PROCmain
- 2.9
- 160 end%=TIME
- 2.9
- 170 :
- 2.9
- 180 PROCprint
- 2.9
- 190 END
- 2.9
- 200 ————————————————
- 2.9
- 210 DEFPROCinit
- 2.9
- 220 @%=&0A0A:CLS
- 2.9
- 230 ENDPROC
- 2.9
- 240 ————————————————
- 2.9
- 250 DEFPROCmenu
- 2.9
- 260 OFF
- 2.9
- 270 PRINTTAB(31,12)“EIGENVALUES”‘
- 2.9
- 280 PRINTTAB(27,14)“[1] Random matrix”
- 2.9
- 290 PRINTTAB(27,15)“[2] Fixed demo
- 2.9
- 5x4 matrix“
- 2.9
- 300 PRINTTAB(27,16)“[3] Fixed demo
- 2.9
- 4x4 matrix“
- 2.9
- 310 ENDPROC
- 2.9
- 320 ————————————————
- 2.9
- 330 DEFPROCinput
- 2.9
- 340 while=TRUE
- 2.9
- 350 WHILE while
- 2.9
- 360 CASE GET$ OF
- 2.9
- 370 WHEN “1”:while=FALSE:ON
- 2.9
- 380 REM Generate random matrix M,
- 2.9
- col% columns and row% rows
- 2.9
- 390 REPEAT:
- 2.9
- INPUT‘“ Rows : ”
- 2.9
- row%:UNTIL row%>0
- 2.9
- 400 REPEAT:INPUT‘“ Columns
- 2.9
- <= rows : “col%:UNTIL col%
- 2.9
- <=row% AND col%>0
- 2.9
- 410 CLS:
- 2.9
- PRINT‘“ Rows : ”STR$
- 2.9
- row%‘“ Columns : ”STR$col%
- 2.9
- 420 row%-=1:col%-=1
- 2.9
- 430 DIM M(row%,col%)
- 2.9
- 440 FORr%=0TOrow%:FORc%=0TOcol%
- 2.9
- 450 M(r%,c%)=RND(1)*SGN(0.5-
- 2.9
- RND(1))
- 2.9
- 460 NEXT:NEXT
- 2.9
- 470 :
- 2.9
- 480 WHEN “2”:while=FALSE:ON
- 2.9
- 490 REM *** Fixed data for demo
- 2.9
- 5x4 matrix having one zero
- 2.9
- eigenvalue
- 2.9
- 500 CLS:PRINT‘“ Rows : 5”
- 2.9
- ‘“ Columns : 4”
- 2.9
- 510 row%=4:col%=3:DIM M(4,3)
- 2.9
- 520 M(0,0)=4:M(0,1)=3:M(0,2)=2:
- 2.9
- M(0,3)=1
- 2.9
- 530 M(1,0)=2:M(1,1)=4:M(1,2)=1:
- 2.9
- M(1,3)=3
- 2.9
- 540 M(2,0)=6:M(2,1)=7:M(2,2)=3:
- 2.9
- M(2,3)=4
- 2.9
- 550 M(3,0)=8:M(3,1)=11:M(3,2)=4:
- 2.9
- M(3,3)=7
- 2.9
- 560 M(4,0)=8:M(4,1)=6:M(4,2)=4:
- 2.9
- M(4,3)=7
- 2.9
- 570 :
- 2.9
- 580 WHEN “3”:while=FALSE:ON
- 2.9
- 590 REM Fixed data for demo 4x4
- 2.9
- matrix having four eigenvalues
- 2.9
- 600 CLS:PRINT‘“ Rows : 4”
- 2.9
- ‘“ Columns : 4”
- 2.9
- 610 row%=3:col%=3:DIM M(3,3)
- 2.9
- 620 M(0,0)=1.00:M(0,1)=0.42:
- 2.9
- M(0,2)=0.54:M(0,3)=0.66
- 2.9
- 630 M(1,0)=0.42:M(1,1)=1.00:
- 2.9
- M(1,2)=0.32:M(1,3)=0.44
- 2.9
- 640 M(2,0)=0.54:M(2,1)=0.32:
- 2.9
- M(2,2)=1.00:M(2,3)=0.22
- 2.9
- 650 M(3,0)=0.66:M(3,1)=0.44:
- 2.9
- M(3,2)=0.22:M(3,3)=1.00
- 2.9
- 660 ENDCASE
- 2.9
- 670 ENDWHILE
- 2.9
- 680 ENDPROC
- 2.9
- 690 ————————————————-
- 2.9
- 700 DEFPROCmain
- 2.9
- 710 DIM Mt(col%,row%),MtM(col%,col%)
- 2.9
- ,E(col%)
- 2.9
- 720 PROCtranspose(M(),Mt())
- 2.9
- 730 PROCsquare_sym(M(),Mt(),MtM())
- 2.9
- 740 PROCeigenvalues(MtM(),E())
- 2.9
- 750 ENDPROC
- 2.9
- 760 ————————————————-
- 2.9
- 770 DEFPROCtranspose(R(),Rt())
- 2.9
- 780 LOCAL v%,h%
- 2.9
- 790 v%=DIM(R(),1):h%=DIM(R(),2)
- 2.9
- 800 FOR r%=0 TO v%:FOR c%=0 TO h%:
- 2.9
- Rt(c%,r%)=R(r%,c%):NEXT:NEXT
- 2.9
- 810 ENDPROC
- 2.9
- 820 ————————————————-
- 2.9
- 830 DEFPROCsquare_sym(R(),Rt(),RtR())
- 2.9
- 840 RtR()=Rt().R()
- 2.9
- 850 ENDPROC
- 2.9
- 860 ————————————————-
- 2.9
- 870 DEFPROCeigenvalues(RtR(),EV())
- 2.9
- 880 REM Eigenvalues are determined
- 2.9
- from R-transposed x R, using the property that eigenvalues do not
- change by a similarity
- 2.9
- 890 REM *** transformation. Rt.R is
- 2.9
- decomposed in a lower and upper
- 2.9
- tri-angular matrix, Rt.R=LU. Then
- 2.9
- UL has the same eigenvalues as LU.
- 2.9
- 900 REM Repeating this process
- 2.9
- iterates all non-diagonal elements to 0, and the diagonal
- elements
- 2.9
- to the eigenvalues.
- 2.9
- 910 :
- 2.9
- 920 REM E.D. Engelhardt, March 1989
- 2.9
- 930 :
- 2.9
- 940 LOCAL L(),U(),UL(),h%,c%,r%,t%,
- 2.9
- repeat,max,iterations%
- 2.9
- 950 h%=DIM(EV(),1)
- 2.9
- 960 DIM L(h%,h%),U(h%,h%),UL(h%,h%)
- 2.9
- 970 :
- 2.9
- 980 PRINTTAB(1,30)“Iteration : ”
- 2.9
- :REM This info may be left out
- 2.9
- 990 :
- 2.9
- 1000 repeat=TRUE
- 2.9
- 1010 REPEAT
- 2.9
- 1020 iterations%+=1:PRINTTAB(13,30)
- 2.9
- iterations% :REM may be left out
- 2.9
- 1030 REM Calculate lower triangle
- 2.9
- L of RtR
- 2.9
- 1040 FOR c%=0 TO h%:FOR r%=c% TO h%
- 2.9
- 1050 L(r%,c%)=RtR(r%,c%):t%=c%-1
- 2.9
- 1060 IF t%>=0 FORt%=t%TO0STEP-1:
- 2.9
- L(r%,c%)=L(r%,c%)-L(r%,t%)
- 2.9
- *L(c%,t%):NEXT
- 2.9
- 1070 IF r%>c% THEN L(r%,c%)=
- 2.9
- L(r%,c%)/L(c%,c%)
- 2.9
- 1080 IF r%=c% IF L(r%,c%)<0 THEN:
- 2.9
- FOR t%=0 TO h%:L(t%,c%)=0:NEXT
- 2.9
- 1090 IF r%=c% L(r%,c%)=SQR L(r%,c%)
- 2.9
- 1100 IF r%=c% AND L(r%,c%)=0 r%=h%
- 2.9
- 1110 NEXT:NEXT
- 2.9
- 1120 :
- 2.9
- 1130 PROCtranspose(L(),U())
- 2.9
- 1140 :
- 2.9
- 1150 REM Matrix similar to RtR (ie
- 2.9
- having same eigenvalues) is UL
- 2.9
- 1160 UL()=U().L()
- 2.9
- 1170 :
- 2.9
- 1180 REM Determine if diagonals of
- 2.9
- RtR and UL are equivalent
- 2.9
- 1190 t%=0
- 2.9
- 1200 REPEAT
- 2.9
- 1210 IF UL(t%,t%)<>RtR(t%,t%)
- 2.9
- :repeat=FALSE
- 2.9
- 1220 t%+=1:IF t%>h% repeat=FALSE
- 2.9
- 1230 UNTIL repeat=FALSE
- 2.9
- 1240 IF t%<=h% repeat=TRUE:RtR()=
- 2.9
- UL()
- 2.9
- 1250 UNTIL repeat=FALSE
- 2.9
- 1260 :
- 2.9
- 1270 REM Put eigenvalues smaller then
- 2.9
- non-diagonal elements to zero
- 2.9
- 1280 FOR t%=0 TO h%:UL(t%,t%)=0:NEXT
- 2.9
- 1290 FOR r%=1 TO h%-1:FOR c%=1 TO r%
- 2.9
- 1300 IF ABS UL(r%,c%)>max max=ABS
- 2.9
- UL(r%,c%)
- 2.9
- 1310 NEXT:NEXT
- 2.9
- 1320 FOR c%=0 TO h%
- 2.9
- 1330 EV(c%)=RtR(c%,c%):IF EV(c%)<=
- 2.9
- max EV(c%)=0
- 2.9
- 1340 NEXT
- 2.9
- 1360 ENDPROC
- 2.9
- 1370 ————————————————
- 2.9
- 1380 DEFPROCprint
- 2.9
- 1390 VDU 14
- 2.9
- 1400 CLS:PRINT‘“ Rows : ”STR$
- 2.9
- row%‘“ Columns : ”STR$col%
- 2.9
- 1410 PRINT‘“ Time(centisecs) : ”;STR$
- 2.9
- (end%-start%)‘’
- 2.9
- 1420 PRINT“ ******** Eigenvalues : ”‘
- 2.9
- 1430 FOR c%=0 TO col%
- 2.9
- 1440 PRINT E(c%)
- 2.9
- 1450 NEXT:PRINT
- 2.9
- 1460 VDU 15
- 2.9
- 1470 ENDPROC
-
- • Partitioning hard drives − It is possible to partition hard drives
- with less than 10 Mbyte. The answer is in the REM statements in the
- Harddisc program on the PC disc. Change the A2080 in line 610 to any
- multiple of &8800 (in hex). Details are given in the REMs.
- • Hearsay − We mentioned changing modem baud rates in H & T in May.
- Philip Green sends us a way of doing this automatically suggested by
- Alfons Tjin. Use a dial prefix in the modem driver edit screen of just
- “AT” and then put B3D or B0D, as necessary, in front of the phone number
- in the telephone directory.
- • Case sensitive system variables − Some readers have had problems
- using the *SETMACRO Alias$ command. This is because system variables are
- case sensitive i.e. you need to type: Alias$ not ALIAS$
- • Overload passwords: A B BROS, CABBAGED, SLIPPERS, PREVIOUS,
- PILLAGED, BOVERBOD, LAVATORY, CASSETTE, WHALEÊFM, EXTRACTS, STOPKETS
- The following hints were sent in by Lorcan Mongey
- • ‘T’ Option in LDR and STR − Assembly language programmers may have
- noticed that the Programmer’s Reference Manual mentions a ‘T’ option in
- the description of the LDR and STR com-mands (page 608), but neglects to
- say what it does. It is, in fact, used for setting the write-back option
- and has exactly the same effect as ‘!’. Note that the *MEMORYI disassem
- bler always disassembles pre-indexed write-back with ‘!’ and post-
- indexed write-back with ‘T’, although you may use either form when
- assembling. Bear in mind that post-indexed write-back always takes
- place, regardless of the state of the write-back flag.
- 2.10
- • Bit patterns for LDR and STR − There is an omission in Appendix C of
- the “ARM Assembly Language programming” book published by Com-puter
- Concepts. Appendix C gives the bit patterns of the ARM instruction set,
- but does not describe the ‘L’ bit of the ‘Single Data transfer’
- instruction. This is the Load/Store bit: 0=store (STR), 1=load (LDR).
- 2.10
- This description also applies to the ‘Block data transfer’ instructions
- (STM and LDM).
- 2.10
- • BASIC restrictions − In BASIC II on the BBC B (and IV on the Master)
- there were a number of restrictions which no longer apply to BASIC V on
- the Archimedes, but have not been specifically mentioned in the
- Archimedes User Guide. They are worth noting because they have probably
- become ingrained in BBC B users who may not have realised that they have
- been lifted.
- 2.10
- 1) You can now change MODE inside a procedure or function. This is
- because the screen RAM is now completely separate from the program area.
- 2.10
- 2) The nesting limits of FOR, REPEAT and GOSUB (10, 20 and 26 respec
- tively) no longer apply. Instead of a fixed limit, you can now nest
- loops until you run out of RAM. I have successfully nested loops 15,000
- deep and run a recursive procedure 30,000 levels deep! Strangely,
- nesting GOSUBs too deeply is not trapped and will corrupt your program,
- but this situation is unlikely to happen in practice.
- 2.10
- • BASIC errors − I have found four BASIC errors not listed in the User
- Guide (Issue 2). They are:
- 2.10
- 11 No room for this dimension − An attempt was made to dimension an
- array for which there was insufficient space.
- 2.10
- 25 Bad MODE − An attempt was made to select a screen mode for which
- there is insufficient memory. More memory can be allocated by *CONFIGURE
- SCREENSIZE.
- 2.10
- 37 No room for function/procedure call − An attempt was made to ‘nest’
- too many function and/or procedure calls.
- 2.10
- 44 Too many nested structures − An attempt was made to ‘nest’ too many
- FOR...NEXT, REPEAT...UNTIL and/or WHILE... ENDWHILE loops.
- 2.10
- Note that 11 and 44 are covered in the Archimedes 400 series BBC BASIC
- Guide.
- 2.10
- • Using FORTRAN 77 − The article on using FORTRAN 77 in Archive 1.7
- included a sample subroutine showing how to access graphics from
- FORTRAN. There are a number of problems with this subroutine. It can’t
- cope with negative graphics coordinates (needed after an origin shift),
- it sends a line feed to the screen when it is used, which can cause your
- graphics to scroll upwards, and it uses an output channel which should
- be kept free for file access. The following solves all the problems:
- 2.10
- SUBROUTINE PLOT(K,X,Y)
- 2.10
- INTEGER X,Y I1=IAND(X,?IFF)
- 2.10
- I2=ISHFT(IAND(X,?IFF00),-8)
- 2.10
- J1=IAND(Y,?IFF)
- 2.10
- J2=ISHFT(IAND(Y,?IFF00),-8)
- 2.10
- PRINT 100,CHAR(25),CHAR(K),CHAR(I1),
- 2.10
- CHAR(I2),CHAR(J1),CHAR(J2)
- 2.10
- RETURN
- 2.10
- 100 FORMAT (6A1$)
- 2.10
- END
- 2.10
- This method masks out the unwanted bits and shifts the data into the
- l.s.b., thus preserving the sign. It uses PRINT instead of WRITE,
- avoiding the need for a channel number. The $ at the end of the FORMAT
- statement suppresses the line feed. (No criticism of the original
- authors is intended; my first attempt looked very similar!)
- 2.10
- Included on this month’s program disc is Graph_ FOR, the FORTRAN source
- of a set of graphics subroutines which provide a full set of VDU calls.
- Some, like BELL for instance, are trivial, but others are more
- complicated.
- 2.10
- • Printer conventions − Many people seem to have difficulty with
- setting up the correct linefeed or non-linefeed for their printers for
- different app-lications, so I.J. King has tried to explain it for usÉ
- 2.10
- How the Archimedes deals with varying printer standards − Since there
- are two standards for printers, the Archimedes has a mechanism to allow
- it to cope with both. The standards in question affect the way the paper
- is fed through the mechanism and there are two possible cases:
- 2.10
- A. Auto Linefeed: every time the printer receives a carriage return
- character (code 13), it generates a line feed (code 10) to move the
- paper up a line.
- 2.10
- B. Non-Auto Linefeed: the printer does not gener-ate its own linefeed
- characters but relies on the com-puter to send a linefeed after every
- carriage return.
- 2.10
- Most modern printers will actually have a switch to select either of
- these modes, allowing them to be compatible with most computers, but
- this is likely to be difficult to reach. The Archimedes will (in the
- case of virtually all software) send a line feed after every carriage
- return. To allow compatibility with printers in mode (A) above, it is
- possible to tell the machine to ignore a particular code when sent to
- the printer. By setting this to 10 (the code for line feed), no line
- feeds will be sent to the printer and you are compatible with type (A)
- printers.
- 2.10
- This code is set up using the *IGNORE command, for example:
- 2.10
- *IGNORE 10
- 2.10
- To disable the trap altogether, simply enter *IGNORE on its own. Either
- of these may be preceded by CONFIGURE to make the effect permanent, e.g.
- 2.10
- *CONFIGURE IGNORE 10
- 2.10
- The Archimedes is set up with a factory default ignore code of 10,
- making the system compatible with type (A) printers when it arrives.
- 2.10
- Problems arising when the protocol is ignored − The above should make
- everything seem fairly simple and indeed it ought to be. However, some
- software houses, notably GST and Grafox (i.e. First Word Plus and
- Logistix) have chosen to ignore the sensible protocols described above
- and override the *IGNORE status in such a way that they are only
- compatible with type (B) printers, regardless of the setting of *IGNORE.
- 2.10
- This means that the hapless user will have been forced to configure his
- printer to be type (B) but will not have re-configured his Archimedes
- since the software will override the settings and work anyway. They then
- go out and purchase a correctly written package, such as System
- DeltaPlus etc, and the result is a type (B) printer (generating no line
- feeds) on a machine configured for a type (A) printer (and so sending no
- line feeds) which results in no line feeds at all and the text all comes
- out on the same line.
- 2.10
- A subsidiary problem occurs in some cases, when reconfiguring the
- Archimedes to work with type (B) printers, as is necessary if you wish
- to use both First Word Plus/Logistix and other, correctly written,
- software. The correct way to do this is to enter the command *CONFIGURE
- IGNORE with no parameters, completely disabling the printer trap. It is
- not correct to enter *CONFIGURE IGNORE 0 as this prevents code 0 from
- being sent to the printer and may corrupt some graphics/font change
- sequences used by certain software.
- 2.10
- Conclusions − If you are using any package which overrides the Acorn
- protocols for printer compatibility in the way described above and also
- wish to use correctly written software (in my case, I use both Logistix
- and System DeltaPlus), you should take the following steps:
- 2.10
- 1. Set your printer so that Auto Linefeed is OFF (usually a DIP switch).
- 2.10
- 2. Enter *CONFIGURE IGNORE
- 2.10
- 3. Press <ctrl-break> to reconfigure your machine.
- 2.10
- This now only leaves us with one question − why are Acornsoft apparently
- condoning this system of forcing the user to have a printer type
- different from that for which the machine is configured by default?!
- 2.10
- • PC Emulator Star Commands (Response to query in Archive 2.5 p5) −
- There is no need for a *Configure Floppies command from the PC emul-ator
- when copying from one 3.5“ disc to another. You must understand the
- distinction between log-ical and physical drives: logical drives are
- known to the emulator as A, B, C, etc, and are mapped onto the physical
- drives 0, 1, etc. It is possible to have more than one logical drive
- assigned the same phys-ical drive. This is what happens when you have
- your Archimedes configured for one floppy − the emul-ator maps logical
- drives A and B onto physical drive 0 and, recognising this when you copy
- from A to B, prompts for a disc change. If you have two floppies, the
- emulator maps A and B onto 0 and 1 respect-ively. I use an external
- 5.25” 40/80 track drive on my Archimedes and my config.sys file, listed
- below, illustrates the way around the problem.
- 2.10
- device=driver.sys /d:0 /t:80 /f:2
- 2.10
- device=driver.sys /d:1 /t:80 /f:2
- 2.10
- device=driver.sys /d:1 /t:40 /f:0
- 2.10
- device=driver.sys /d:1 /t:40 /f:0
- 2.10
- files=20
- 2.10
- buffers=10
- 2.10
- The first four lines assign more logical drives (which the emulator
- gives the letters C, D, E and F) to the physical drives 0 and 1. The
- meaning of the parameters is:
- 2.10
- /d: physical drive number
- 2.10
- (0 for internal, 1 for external)
- 2.10
- /t: number of tracks on disc
- 2.10
- (80 for 720k and 40 for 360k)
- 2.10
- /f: disc format
- 2.10
- (2 means 720k, 0 means 360k)
- 2.10
- The first line assigns logical drive C to physical drive 0. You can now
- copy from 3.5“ to 3.5” by using ‘copy a:x.dat c:’ and DOS will prompt
- for a disc change. The second line maps logical drive D to physical
- drive 1, enabling copying between 5.25“ 80-track floppies (copy b:x.dat
- d:). The last two lines assign two 40-track drives (E and F) to physical
- drive 1, allowing copying between 40-track 5.25” discs (copy e:x.dat f:)
- in the same way.
- 2.10
- You should be aware that loading all these device drivers will use up
- some application workspace, leaving less for programs, so only install
- them when you need them!
- 2.10
- • Three SWIs which are not mentioned in the Programmer’s Reference
- Manual (Issue 1):
- 2.10
- OS_AddToVector &47
- 2.10
- OS_WriteEnv &48
- 2.10
- WaveSynth_Load &40300
- 2.10
- (WaveSynth_Load was mentioned but not ident-ified in Archive 1.8, p9)
- 2.10
- Also, there is one SWI which seems to have been mis-spelled in the
- Arthur 1.20 ROMs, namely:
- 2.10
- Sound_QSDispatch &401C4
- 2.10
- The ‘S’ between Q and Dispatch shouldn’t be there. If you refer to SWIs
- by name rather than number then you must mis-spell this one in the same
- way otherwise it won’t be recognised!
- 2.10
- • Infinite energy for ThunderMonk − J.R. Donaldson sent in this
- program, which will alter your ThunderMonk disk to give you infinite
- energy.
- 2.10
- 10 REM > Thun_Cheat
- 2.10
- 20 REM Joe Pineapples − Cool Assassin
- 2.10
- 30
- 2.10
- 40 DIM sector% &400
- 2.10
- 50
- 2.10
- 60 MODE 0
- 2.10
- 70 PRINT “Please insert ThunderMonk
- 2.10
- disc and press a key.“
- 2.10
- 80 G = GET
- 2.10
- 90
- 2.10
- 100 PRINT ‘“Now loading relevant
- 2.10
- sector“‘
- 2.10
- 110
- 2.10
- 120 SYS “ADFS_DiscOp”,, 1, &C6400,
- 2.10
- sector%, &400
- 2.10
- 130
- 2.10
- 140 PRINT “Do you want to play
- 2.10
- (C)heat or Normal ?“
- 2.10
- 150 G = GET
- 2.10
- 160
- 2.10
- 170 IF G=ASC(“C”) OR G=ASC(“c”) THEN
- 2.10
- 180 sector%!&388 = &E59C0044
- 2.10
- 190 sector%!&38C = &E28000FE
- 2.10
- 200 sector%!&390 = &E58C0044
- 2.10
- 210 ELSE
- 2.10
- 220 sector%!&388 = &059C0044
- 2.10
- 230 sector%!&38C = &02400001
- 2.10
- 240 sector%!&390 = &058C0044
- 2.10
- 250 ENDIF
- 2.10
- 260
- 2.10
- 270 PRINT ‘“Now saving relevant
- 2.10
- sector“‘
- 2.10
- 280
- 2.10
- 290 SYS “ADFS_DiscOp”,, 2, &C6400,
- 2.10
- sector%, &400
- 2.10
- 300
- 2.10
- 310 PRINT “Change complete. Now use
- 2.10
- disc as normal.“
- 2.10
- 320 END
- 2.10
- • Thunder Monk passwords − the Thunder Monk passwords change from disc
- to disc (or do they change from month to month? Ed), but they can be
- found at address &4E400. Just find your level two password in the list
- below and next two words will be used for levels three and four e.g. our
- level two password is STEVES so the passwords for the next levels are
- BIRTHDAY and MIDSUMMER.
- 2.10
- SHIRT JUMPER WELLIES Y-FRONTS LOVERS HEARTS CUPID VALENTINE DANIEL AND
- SIMONS BIRTHDAY JOKES SHOWERS FOOL SPRING POLE EXAMS SUNNY STUDY STEVES
- BIRTHDAY MIDSUMMER WARMER HOLIDAYS MAJORCA SUNHAT HOTTER RESULTS FAILED
- PASSED PISSUP SCORCHER RESTART SUNBURN ARCHIE SPOOK SHIVER HALLOWEEN
- COOLING BONFIRE WEEEEEE FIREWORKS CHILLY CHRISTMAS HOLLY PRESENTS MERRY!
- 2.10
- (D’you get the significance of the passwords?? Ed.)
- 2.10
- • View to FWP − When using the utility provided with First Word Plus
- to convert View files, Robert Leon noted that the left margin default
- (in the Print File dialogue window) should be changed to 4, otherwise
- the file is not printed properly.
- 2.10
- • Using 1st Mail for multi-column printouts − David Scott − Text which
- is to be printed in more than one column is first prepared with First
- Word Plus and it is at this stage that preparations must be made for the
- print format. The text format must suit the final required column width
- otherwise First Mail will ignore the instructions to print out in multi
- columns.
- 2.10
- An example will show how to lay out the text. Suppose that you require
- two columns each 31 characters wide set side by side on a 65 character
- wide sheet. This will be possible as it allows 3 characters for the
- central white column since
- 2.10
- 31 + 3 + 31 = 65
- 2.10
- The text must be prepared using a line length of 31 characters. The page
- markings in First Word Plus will show final page 1 column 1 as page 1,
- final page 1 column 2 as page 2, final page 2 column 1 as page 3 and so
- on.
- 2.10
- When the text has been fully prepared enter First Mail and follow the
- instructions given on pages 196 and 197 of the manual. The number of
- columns must be set to 2 in this example.
- 2.10
- • Another possible bug in First Mail − David Leckie − When using First
- Word Plus with the ruler set to double line spacing, continuous text,
- i.e. no returns are double spaced but text followed with a return is not
- double spaced as you would expect.
- 2.10
- However when a First Mail mail-merge is done from the file, the mrg file
- contains double spaced text where there was single spaced text in the
- original doc. Thus if you want, say, your address lines to be double
- spaced then they should be a RETURN between each line in the doc file
- only if you are not going to do a First Mail mail merge. If you are
- doing a mail merge then they should be single spaced i.e. no RETURNS
- because after the mail merge double line spacing will be inserted! Very
- funny!
- 2.10
- • “Memalloc” module − John Fidler was playing with the !Lander program
- in RISC-OS when he realised that it should not have run with the
- configuration settings on his machine. He looked in the !Lander
- directory (by clicking on the icon in the directory viewer while holding
- the <shift> key) and found the Memalloc module.
- 2.10
- This module provides nine new star commands, which allow you to check
- and alter the size of various memory pools i.e. system heap, RMA, screen
- area, sprite area and font cache.
- 2.10
- ==> Help on keyword MemAlloc
- 2.10
- Module is: MemAlloc util 0.11 (06 Dec 1988)
- 2.10
- Commands provided:
- 2.10
- SystemSize RMASize ScreenSize SpriteSize FontSize
- 2.10
- RAMFSSize RMAFree SpriteFree FontFree
- 2.10
- • Desktop ScreenSize configuration − When using the desktop, the
- memory allocated to the screen area is regulated by the desktop screen
- mode and not the configuration setting e.g. if you are in mode 12 then
- the screen area will have 80k allocated to it (or 96k for the 400
- series).
- 2.10
- • Desktop startup commands − When starting the desktop using *Desktop,
- you can make the Archimedes run a file or perform a star command. This
- facility could be used to start the desktop up in a predefined state.
- 2.10
- ==> Help on keyword Desktop
- 2.10
- *Desktop starts up any dormant Wimp modules, and also passes an optional
- 2.10
- *command or file of *commands to Wimp_StartTask.
- 2.10
- Syntax: *Desktop [<*command> | -File <filename>]
- 2.10
- • Converting ArcTerm 6.01 to RISC-OS − Arc-Term 6.01 will work under
- RISC-OS if you make a !Run file in the !ArcTerm application directory:
- 2.10
- RMEnsure InternationalKeyboard 0.17
- 2.10
- RMReInit InternationalKeyboard
- 2.10
- DIR <Obey$Dir>.!ArcTerm
- 2.10
- Run ArcTerm
- 2.10
- • Extra Options for the Copy Command − The new User Guide (page 208)
- lists a number of new options for the Copy command which considerably
- extend its usefulness. The L and N options are par-ticularly useful for
- performing backups from hard disc to floppy disc. Thus the command:
- 2.10
- *Copy HD::$.A.* FL::$.* ~CFQR
- 2.10
- will make a quick backup, without confirmation, of all the files and
- subdirectories in directory A of the hard disc named HD onto the floppy
- disc named FL. If however the option N is also added then only the files
- which have changed since the last backup will be copied, thus reducing
- the backup time consider-ably. If the L option is also added then even
- more time is saved as the directories of both source and destination
- disks are checked before any attempt is made to load the files
- themselves.
- 2.10
- If suitable Copy commands are added to the end of an application !Run
- file then an automatic backup of changed files can be made when you have
- finished using the application. In this case it is vital to quote the
- name of the required backup floppy disc so that a request to load it can
- be given if it is not already in the drive.
- 2.10
- • RISC-OS RS423 − Richard House says that using RISC-OS he can now
- communicate with his BBC Model B at 19200 baud, without any errors
- (whereas under Arthur 1.2, even with the patch, he was limited to 9600
- baud).
- 2.10
- • Diagram II using RAMdisc − Load the file “Setup” and change the “8”
- in lines 10045, 10750, 10765, 10805 and 11325 to “23”. This will cause
- it to access the ram-disk (assuming you copied Diagram II over to the
- ram-disk) thereby running much faster during scrolling and saving wear
- and tear on your floppy or hard disk. (J.Daniels of Pineapple Software)
- 2.10
- • MIDI !Maestro − One reader says that there is an undocumented
- facility in the !Maestro application which can play a MIDI instrument if
- the MIDI podule is fitted.
- 2.10
- • Typing control characters − If you wish to use a “non-keyboard”
- character under RISC-OS, just hold down the <ALT> key and type in the
- character number on the keypad.
- 2.10
- • RMReInit SpriteUtils − Many applications unplug modules and
- reinitialise them later. Often, under RISC-OS, the SpriteUtils module
- does not get reinitialised. If you have any problems loading sprites or
- get the “SWI not known” error, you can check whether your modules have
- been reinitialised properly by typing *ROMModules.
- 2.10
- One reader says that ‘Pacmania’ can be cured of this by adding the
- following line to the !BOOT file:
- 2.10
- 935 *RMReInit SpriteUtils
- 2.10
- • Multi-Tasking − How many tasks can RISC-OS run simultaneously? The
- manual doesn’t say, so I decided to find out by loading multiple copies
- of the desktop clock. When I tried to load the 29th clock I got an error
- message “Too many tasks”, making the upper limit 28.
- 2.10
- • Leaving the Desktop from a Command File − David Scott − The answer
- to my own previous help query is actually quite simple when you know
- how! The last command in the file, which must be an obey file, (it does
- not work with an exec file) must be:
- 2.10
- *fx138,0,252
- 2.10
- which simulates pressing <control-shift-f12>.
- 2.10
- • Space for large applications − The methods used by Acorn and other
- suppliers of application software to load their applications which
- require a lot of space, seem to be both devious and, in many cases,
- ineffective since they result in less space being available for the
- application than under Arthur 1.2.
- 2.10
- The method illustrated below allows over 300k of data space in Logistix
- or over 600k of memory with the PC Emulator on a 1Mbyte machine. The
- technique is a three stage process and is illustrated for Logistix.
- 2.10
- Note that the machine will have to be reset after using the application
- in order to restore all the normal modules and their facilities.
- 2.10
- Note also that the amount of free space will vary depending on the
- configuration settings. In my case, these are 80k for the screen (Mode
- 12) and 0K for System sprites, font cache and RAM FS.
- 2.10
- If you use Econet then the modules NetFS, NetPrint, BBCEconet, NetFiler
- and NetStatus should also be killed in Stage 2. If you do not use Econet
- then you will gain marginally more space for all applications by
- *Unplugging these modules as I have done.
- 2.10
- Stage 1 − Set up the standard !Run file for the application so that it
- sets a function key to execute the stage 2 file after quitting the
- desktop.
- 2.10
- | >$.!Logistix.!Run
- 2.10
- IconSprites <Obey$Dir>.!Sprites
- 2.10
- Key1 Quit|MDir $|MExec $.!Logistix.Lgx1|M
- 2.10
- Fx138,0,252
- 2.10
- Fx138,0,129
- 2.10
- Stage 2 − This file must be an command file (not Obey). It clears the
- temporary modules and then kills all the unwanted modules. A function
- key is then set up to execute Stage 3 and the file ends by recovering
- the freed space using the RMTidy com-mand which must be the last command
- in the file.
- 2.10
- | >$.!Logistix.Lgx1
- 2.10
- RMClear
- 2.10
- RMKill Debugger
- 2.10
- RMKill Desktop
- 2.10
- RMKill WindowManager
- 2.10
- RMKill FontManager
- 2.10
- RMKill InternationalKeyboard
- 2.10
- RMKill SoundScheduler
- 2.10
- RMKill StringLib
- 2.10
- RMKill Percussion
- 2.10
- RMKill SpriteExtend
- 2.10
- RMKill Draw
- 2.10
- RMKill Hourglass
- 2.10
- RMKill Podule
- 2.10
- Key 1 *Obey $.!Logistix.Lgx2|M
- 2.10
- FX138 0 129
- 2.10
- RMTidy
- 2.10
- Stage 3 − This Obey file sets the current directory (it was cleared by
- the radical effects of RMtidy) and then loads the Floating point
- emulator and Logistix directly. The final line is an optional backup
- command which automatically backs the new and changed data files up to a
- floppy disc (named S1 in this case).
- 2.10
- | >$.!Logistix.Lgx2
- 2.10
- Dir $.!Logistix
- 2.10
- RMLoad $.!System.Modules.
- 2.10
- FPEmulator
- 2.10
- Lgx
- 2.10
- COPY :DJS.!Logistix.Sheet.* :S1.*
- 2.10
- ~CFLNQ
- 2.10
- PC Emulator − The method is similar for stages 1 and 2 except the
- following additional modules can be killed in stage 2: SystemDevices,
- TaskManager, PaletteUtil, Filer, ADFSFiler, RAMFSFiler, ShellCLI and
- RamFS. Stage 3 is not required as the line which sets the function key
- termination command is:
- 2.10
- Key 1 PC.Emulate|M
- 2.10
- which enters the PC Emulator directly. Note that the PC directory must
- be in the root and must be called PC otherwise the Emulator fails during
- loading.
- 2.10
- • Getting First Word Plus started − further to the comments on page
- 20/21, last month, it is not a good idea to use *MOUNT as First Word
- Plus will then not allow you to change discs, *DRIVE should be used and
- this works fine. My machine is configured to boot with the external
- drive selected, which usually holds a “library disc”, which is how I
- discovered the problem. First Word Plus now boots happily under RISC-OS,
- including an amended version of the key press module which traps <ctrl-
- f12> to provide a command line similar to that on the desk top − i.e.
- scrolling up from the bottom of the screen. (We’ll try to get hold of
- this for the monthly disc. Ed.)
- 2.10
- • First Word Plus from the RISC-OS desktop − create the following run
- file:
- 2.10
- !Run
- 2.10
- | !Run for !First Word Plus+ version 0.01
- 2.10
- IconSprites <Obey$Dir>.!Sprites
- 2.10
- WimpSlot -min 400k
- 2.10
- set FirstWordPlus$Resources $.Resources.1wp.
- 2.10
- set FirstWordPlus$Docs &.1wp.
- 2.10
- echo<5><23><17><7><6><8><0><8><0>
- 2.10
- <0><0><0><0>
- 2.10
- run “<FirstWordPlus$Resources>1wp”
- 2.10
- • First Mail under RISC-OS − David Leckie − While First Word Plus has
- drawn a lot of comment, very little mention has been made First Mail,
- the mail merge program that accompanies it.
- 2.10
- When run under RISC-OS the main window will not resize. Now this may not
- seem like much of a problem but the trouble is that the printer window
- is hidden under the main window and cannot be easily accessed.
- 2.10
- Fortunately the corners of the window are just visible and can be
- clicked on. The printer driver window pops up when clicked on ok, but
- while the destination printer window can be clicked on, the name of the
- selected destination printer is still hidden. This problem is compounded
- by the last line of the 1st paragraph on page 154 of the manual being
- wrong. “The four options Parallel Port, Serial Port, Network Port and
- Disc will appear in rotation.
- 2.10
- They do not rotate in the order above. Parallel Port is the first and
- Disk is the third not fourth but which is network and serial? Can
- someone with Arthur please tell us?
- 2.10
- Thus, if you want to do a merge to parallel printer it works fine. For
- disc, point to the corner of the window and give 2 clicks (not 3). If
- you need serial or network, try 1 or 3 clicks.
- 2.10
- Thanks to Mark Burch who helped to crack the problem.
- 2.10
- • Installing Artisan − Sean Kelly − There are three tips: the first is
- on getting Artisan to return control to the desktop without resetting
- the system; the second is on putting Artisan in any chosen directory;
- the third is not strictly related to RISC-OS, but is on persuading
- Artisan to work with compressed screens.
- 2.10
- Returning to the desktop − When Artisan is installed as described on the
- RISC-OS support disc, it does not return correctly to the desktop. The
- following modification was made to the program on my A440, and works
- perfectly:
- 2.10
- 1. Load program ART5 and, using the BASIC EDITOR, find the line: “DEF
- PROCLAR”
- 2.10
- 2. The next line should be a multi-statement line containing in-line
- assembly code. If so, you have found the correct routine. Delete
- everything on this line except for the first three statements and then
- add “:QUIT” so that the new line reads:
- 2.10
- MODE12:OSCLI“FX4”:OSCLI“UP”:QUIT
- 2.10
- 3. Rename the old ART5 (in case you have made a mistake) and save the
- new version as ART5.
- 2.10
- This new version returns to the desktop, in the same condition as when
- Artisan was called, when you quit Artisan.
- 2.10
- Altering the directory structure − When installed using the hard disc
- install program, Artisan insists on living in a directory called
- :4.$.Artisan. This can be changed − the following details relate to my
- chosen directory of :4.$.APPS.!ARTISAN.
- 2.10
- 1. !RUN should be altered from the support disc version. The new version
- is:
- 2.10
- ECHO <22><&8C>
- 2.10
- WIMPSLOT -MIN 200k
- 2.10
- DIR :4.$.APPS.!ARTISAN *** put your own directory here ***
- 2.10
- URD @ BASIC ART4
- 2.10
- In my case, the pathname of !RUN is “:4.$.APPS. !ARTISAN.!RUN”. Before
- changing !RUN, re-name the old one in case of accident.
- 2.10
- 2. Alter ART5 using the Basic Editor. Several lines need changing; in
- each case the change consists of altering the given directory to point
- to your new directory. The lines that need altering can be found by
- searching for the following strings using the editor (they are all
- unambiguous, but the case of each letter is crucial):
- 2.10
- cLare%=FALSE:
- 2.10
- A%=cLARESMI
- 2.10
- WHEN12:OSCLI
- 2.10
- WHEN1:OSCLI“LOAD
- 2.10
- OSCLI“CDIR
- 2.10
- OSCLI“DIR ”+ClA$+
- 2.10
- Preserve the old ART5 in case of problems.
- 2.10
- • Adapting Artisan for Compressed Screens − I use a modified version
- of the screen compression routine originally published in Personal
- Computer World magazine. It uses the commands *CSCREENLOAD and
- *CSCREENSAVE to load and save compressed screens, and compressed screens
- are given the filetype &010. The adaptation below will work equally well
- with other com-pression routines with the proviso that the compressed
- screen loading routine must recog-nize and correctly deal with normally
- saved screens (filetype &FF9).
- 2.10
- 1. Load ART5 and modify it using the BASIC Editor (first rename ART5, in
- case of errors). Immediately after the REM statements at the start of
- the program, add these two lines (substituting your own compressed
- screen save and load commands):
- 2.10
- *SET Alias$SCREENSAVE CSCREENSAVE %0
- 2.10
- *SET Alias$SCREENLOAD CSCREENLOAD %0
- 2.10
- Substitute the names of your own commands for CSCREENSAVE and
- CSCREENLOAD.
- 2.10
- 2. Find DEFPROCcLaRESM with the editor. Look about 14 lines down and
- there will be a line beginning with WHEN&FF9. Four lines further down
- should be a line beginning with ENDIF. Add two new lines after this
- ENDIF line (substituting your own compressed screen filetype):
- 2.10
- WHEN &010
- 2.10
- RES%=3:mIC%=ReSM%:ReSM%+=1:cLarESM%=7
- 2.10
- 3. Find DEFPROCPS with the editor. Look about seventeen lines down and
- there will be a line beginning with WHEN&FF9. Six lines further down
- should be a line beginning with ENDIF. Add two new lines after this
- ENDIF line (substituting your own compressed screen filetype):
- 2.10
- WHEN &010
- 2.10
- PROCGw(laRES%): clArES%=4
- 2.10
- The modified version of ART5 will correctly handle compressed and
- uncompressed screens for loading, and will normally save screens in
- compressed form.
- 2.10
- • RISC-OS Postscript Printer Drivers − One of our readers can only use
- a laser printer from an Apple Mac, but wanted to obtain good quality
- images of the documents that he produced in !Draw and !Edit. In order to
- do this he redirected the output of the !PrinterPS to a file and
- ‘ported’ the file across to the Mac. The reason why this works is
- because the output of !PrinterPS application is straight ASCII Post
- script text, so in theory, the resulting file could be used by any
- Postscript set up.
- 2.10
- • Configuring !PrinterDM − some readers have had problems outputting
- to their dot matrix printers. This might be because the !PrinterDM
- application must be configured for the printer you are using. This can
- be done by clicking, with <select>, on the printer icon (once installed)
- and then clicking on the printer name that appears in a window, until
- the name of your printer appears. Then select the “Save Choice” option
- on the !PrinterDM menu. The printers that !PrinterDM supports are: Epson
- FX, LQ, and LQ-850 compatibles and the NEC Pin-Writer P6 plus.
- 2.10
- • RISC-OS multisync text scaling solution! − Richard Averill − If you
- turn back to Archive 2.9 p14, you will see the problem of text scaling
- in multisync modes raised. Having also experienced this problem, I tried
- to solve it.
- 2.10
- Firstly, I tried using the output to sprites feature to modify this.
- Since this did not alter the size of the font at all, I then tried a
- more interesting method. I knew that the standard vdu 5 font size was
- 8x8 pixels, so I ran the following program to tell me which locations in
- the operating system’s workspace (&0000-&7FFF) contained the value 8.
- 2.10
- 10 REM > $.TextSize.Find8
- 2.10
- 20 REM (C) Richard Averill, 1989.
- 2.10
- 30 FOR I%=0 TO &7FFC STEP 4
- 2.10
- 40 IF !I%=8 THEN PRINT ~I%;
- 2.10
- 50 NEXT
- 2.10
- I then had a list of locations, so I set vdu 5 mode and *Memory’ed each
- of the locations to have a closer look. Storing 16 in the second
- location (&1360) caused the x text size to be doubled! There were 3 more
- 8‘s consecutively after this value, so after a little testing I came to
- the conclusion shown by the following table:
- 2.10
- Address Contents
- 2.10
- &1360 x size
- 2.10
- &1364 y size
- 2.10
- &1368 x spacing
- 2.10
- &136C y spacing
- 2.10
- All values are given in pixels, so by default these are 8,8,8,8. The
- WIMP manager changes the x and y values according to the x and y ‘eig’
- factors read by swi OS_ReadModeVariable detailed in OS1.2 PRM pages
- 124−126. Note that the values need not be multiples of 8, but the
- characters will look rather odd otherwise!
- 2.10
- The following procedure will enable you to set the text size and
- spacing. The syntax is PROCtextsize(x size, y size, x spacing, y
- spacing).
- 2.10
- 10000 DEF PROCtextsize(x%,y%,sx%
- 2.10
- ,sy%)
- 2.10
- 10010 !&1360=x%
- 2.10
- 10020 !&1364=y%
- 2.10
- 10030 !&1368=sx%
- 2.10
- 10040 !&136C=sy%
- 2.10
- 10050 ENDPROC
- 2.10
- For example, PROCtextsize(16,8,16,8) will give you double width text
- when in VDU 5 mode. This will be square in mode 12 etc. and of a
- rectangular shape in mode 20 etc. The text spacing will usually be the
- same as the text size.
- 2.10
- To set the default text size from the RISC-OS desktop (the answer to the
- query,) run the following program (which is in the “$.TextSize”
- directory of the monthly disc) from within the desktop, and it will
- redraw the whole screen to enable the new size to take effect.
- 2.10
- 10 REM > $.TextSize.SetSize
- 2.10
- 20 REM (C) Richard Averill, 1989.
- 2.10
- 30 REM restores default text size and spacing in the RISC-OS desktop.
- 2.10
- 40
- 2.10
- 50 !&1360=8
- 2.10
- 60 !&1364=8
- 2.10
- 70 !&1368=8
- 2.10
- 80 !&136C=8
- 2.10
- 90 SYS “Wimp_Initialise”,200,
- 2.10
- &4B534154 TO task%
- 2.10
- 100 SYS “Wimp_ForceRedraw”,-1,0,0,
- 2.10
- &FFFF,&FFFF
- 2.10
- 110 SYS “Wimp_CloseDown”,task%,
- 2.10
- &4B534154
- 2.10
- 120 QUIT
- 2.10
- This will set the text size to 8 pixels, the same as under the Arthur
- WIMP manager. So if you have a high resolution monochrome, the text will
- become four times smaller in each direction than normal!
- 2.10
- Unfortunately, there is a slight problem. The RISC-OS WIMP assumes
- scaling will be done to ensure that the size of the text is always 16x32
- OS units and uses these values when calculating text widths/heights
- instead of finding the sizes from the operating system. So any verti
- cally centred text (such as window titles) will not be centred properly
- in multisync modes!
- 2.10
- For real compatibility with Arthur 1.2 WIMP applications, you can save
- the Arthur 1.2 WindowManager module from ROM to disc and *RMLoad this
- into RISC-OS instead. The Arthur 1.2 WIMP module is in the “$.TextSize”
- directory of this month’s programs disc.
- 2.10
-
-
-
- • Limited ADFS memory (RISC-OS/Arthur 1.2) − One reader has written in
- saying that his Archimedes will only *MOUNT six discs. On the seventh,
- the drive spins continuously until the disc is removed. This happens
- because the ADFS only has a limited amount of memory to store the
- directory information. The amount of memory allocated for this can
- controlled by using *Configure ADFSDirCache.
- ==> Help on keyword ADFSDirCache
- *Configure ADFSDirCache sets the size of the directory cache (in Kbytes)
- used by the ADFS. A value of 0 selects a default value which depends on
- RAM size.
- Syntax: *Configure ADFSDirCache <size>[K]
- You can also make the Archimedes forget that it has seen the disc by
- using *DISMOUNT.
- 2.11
- ==> Help on keyword Dismount
- 2.11
- *Dismount closes files, unsets directories and parks the given disc.
- 2.11
- Syntax: *Dismount [<disc spec.>]
- 2.11
- • Three floppies for Arthur 1.2 desktop − In Archive 2.8, pages 11/12,
- there is a hint which allows you to access three drives from the
- desktop. However, the hint states that you must start the desktop up by
- typing */Desktop instead of *Desktop. One reader says that you could of
- course set up *Set Alias$Desktop Run Desktop which would then allow you
- to start up using *Desktop.
- 2.11
- • In First Word Plus, when printing after opening more than one file,
- the first file you opened will be offered for printing, not the last one
- you closed!
- 2.11
- • Configuring your printer under the PC Emulator − In reply to Chris
- Walker’s question, you must use the following reserved words when
- configuring your printer:
- 2.11
- For serial printers use: AUX or COM1, COM2, COM3É
- 2.11
- For parallel printers use: PRN or LPT1, LPT2É
- 2.11
- • Sprite Plot comments from Martin Simmons − The article on sprite
- plotting was interesting since it is always good to see how other
- programmers solve problems. However, the routines are far from being the
- fastest possible, a major inefficiency being that the screen pointer is
- updated after every pixel is plotted. This could be rectified by
- deleting 2410, 2460, 2510, 2580 and changing the following:
- 2.11
- 2010 PROCplot_4_pixels(4*
- 2.11
- (gjenta-1))
- 2.11
- 2050 ADD screen_pointerR,
- 2.11
- screen_pointerR,#320
- 2.11
- 2110 DEF PROCplot_4_pixels(index)
- 2.11
- 2400 STRNEB data5R,
- 2.11
- [screen_pointerR,#index+0]
- 2.11
- 2450 STRNEB data5R,
- 2.11
- [screen_pointerR,#index+1]
- 2.11
- 2500 STRNEB data5R,
- 2.11
- [screen_pointerR,#index+2]
- 2.11
- 2570 STRNEB data5R,
- 2.11
- [screen_pointerR,#index+3]
- 2.11
- Now the pointer is only changed at the end of each line. This improves
- performance over the published routine by about 10% for a 24x24 pixel
- sprite with no black pixels.
- 2.11
- It would be quicker to use word stores instead of byte stores but this
- would complicate the routine and may even slow it down overall.
- 2.11
- • D.I.Y. A3000 serial interface − Mike Harrison (Archive 2.10 p 56)
- didn’t know what the chip numbers were for the A3000 serial interface
- kit. You need a 6551 (which ought to be one of the ones manufactured by
- CMD) and an LT1133.
- 2.11
- • Evaluation of Algebraic Expressions (E.D. Engelhardt) − Anyone who
- is interested in the evaluation of valid algebraic expressions could try
- to use PROCexpression in program Evalexpr as given below. The procedure
- mentioned has been written using suggestions of Mr de Heus, ECD, Delft,
- Holland.
- 2.11
- Variable names in an expression are single, lower-case characters
- ranging from ‘a’ to ‘z’. These names are stored in ‘var$’. Each
- character in the input expression ‘ex$’ is matched with its presence in
- ‘var$’. If so, its position in ‘var$’ is detected and it is replaced by
- the (arbitrary) character ‘$’. The position is used to assign an
- appropriate value to the actual variable by means of array ‘var()’. The
- value of the expression is obtained using the EVAL function.
- 2.11
- The reason EVAL(ex$) is preceded by EVAL (“FALSE”) in PROCevalexpression
- is as follows: If one enters an expression containing no variables but
- numbers only, and the expression cannot be evaluated (e.g. LN0 or 3/0)
- an error message appears on the screen. Thereafter, entering the same
- type of expression, again not containing variables (e.g. LN9 after LN0
- or 6/5 after 3/0), results in the same error message. To prevent this
- from happening the instruction EVAL(“<>”) is included. I discovered this
- ‘feature’ by accident and found the solution by trial and error. I would
- appreciate any comments from interested readers.
- 2.11
- 10 REM >Evalexpr
- 2.11
- 20 :
- 2.11
- 30 WHILE TRUE
- 2.11
- 40 PROCevalexpression
- 2.11
- 50 ENDWHILE
- 2.11
- 60 END
- 2.11
- 70 :
- 2.11
- 80:
- 2.11
- 90 DEFPROCevalexpression
- 2.11
- 100 k$=“ Press any key to continue !”
- 2.11
- 110 LOCAL ERROR
- 2.11
- 120 ON ERROR LOCAL IF ERR=17 THEN
- 2.11
- PRINT‘’“ *** Escaped program !”‘
- 2.11
- :END ELSE PRINT‘“ ”;REPORT$’‘k$;:
- 2.11
- dummy=GET:ENDPROC
- 2.11
- 130 :
- 2.11
- 140 PROCinput
- 2.11
- 150 :
- 2.11
- 160 PROCexpression
- 2.11
- 170 exval=EVAL(“FALSE”) :REM
- 2.11
- *** To prevent error message
- 2.11
- after evaluation of a wrong
- 2.11
- expression, e.g. LN0. Try to REM this
- line !
- 2.11
- 180 exval=EVAL(ex$)
- 2.11
- 190 :
- 2.11
- 200 PROCoutput
- 2.11
- 210 ENDPROC
- 2.11
- 220 :
- 2.11
- 230 DEFPROCinput
- 2.11
- 240 CLS:PRINT‘“ Choice of variables
- 2.11
- from a to z.“‘
- 2.11
- 250 LINE INPUT“ Give expression : ”
- 2.11
- ex$
- 2.11
- 260 ENDPROC
- 2.11
- 270 :
- 2.11
- 280 DEFPROCoutput
- 2.11
- 290 PRINT‘“ Function value of ”;ex$
- 2.11
- ;“ = ”;exval
- 2.11
- 300 PRINT’k$;:dummy=GET
- 2.11
- 310 ENDPROC
- 2.11
- 320 :
- 2.11
- 330 DEFPROCexpression
- 2.11
- 340 LOCAL var$,var(),t%,i%
- 2.11
- 350 var$=“abcdefghijklmnopqrstuvw
- 2.11
- xyz“
- 2.11
- 360 DIM var(LEN(var$))
- 2.11
- 370 :
- 2.11
- 380 FOR t%=1 TO LEN(ex$)
- 2.11
- 390 i%=INSTR(var$,MID$(ex$,t%,1))
- 2.11
- 400 IF i%>0 THEN
- 2.11
- 410 var$=LEFT$(var$,i%-1)+“$”
- 2.11
- +MID$(var$,i%+1)
- 2.11
- 420 PRINT‘“ Value of ”;
- 2.11
- MID$(ex$,t%,1);“ : ”;
- 2.11
- 430 INPUT“”var(i%)
- 2.11
- 440 :
- 2.11
- 450 CASE i% OF
- 2.11
- 460 WHEN 1:a=var(i%)
- 2.11
- 470 WHEN 2:b=var(i%)
- 2.11
- 480 WHEN 3:c=var(i%)
- 2.11
- 490 WHEN 4:d=var(i%)
- 2.11
- 500 WHEN 5:e=var(i%)
- 2.11
- 510 WHEN 6:f=var(i%)
- 2.11
- 520 WHEN 7:g=var(i%)
- 2.11
- 530 WHEN 8:h=var(i%)
- 2.11
- 540 WHEN 9:i=var(i%)
- 2.11
- 550 WHEN 10:j=var(i%)
- 2.11
- 560 WHEN 11:k=var(i%)
- 2.11
- 570 WHEN 12:l=var(i%)
- 2.11
- 580 WHEN 13:m=var(i%)
- 2.11
- 590 WHEN 14:n=var(i%)
- 2.11
- 600 WHEN 15:o=var(i%)
- 2.11
- 610 WHEN 16:p=var(i%)
- 2.11
- 620 WHEN 17:q=var(i%)
- 2.11
- 630 WHEN 18:r=var(i%)
- 2.11
- 640 WHEN 19:s=var(i%)
- 2.11
- 650 WHEN 20:t=var(i%)
- 2.11
- 660 WHEN 21:u=var(i%)
- 2.11
- 670 WHEN 22:v=var(i%)
- 2.11
- 680 WHEN 23:w=var(i%)
- 2.11
- 690 WHEN 24:x=var(i%)
- 2.11
- 700 WHEN 25:y=var(i%)
- 2.11
- 710 WHEN 26:z=var(i%)
- 2.11
- 720 ENDCASE
- 2.11
- 730 ENDIF
- 2.11
- 740 NEXT
- 2.11
- 750 :
- 2.11
- 760 ENDPROC
- 2.11
-
- 2.11
- • First Word Plus − I am sure that all users of First Word Plus have
- found it considerably enhanced by the use of Steve Hoare’s Interrupt
- Module (available on Shareware N¼6). The main use for this is in
- mounting new discs, formatting and creating directories. I have recently
- discovered that it can also be used for *EXECing files into the word
- processor. This can be very useful because First Word Plus treats the
- standard ASCII space character as a ‘hard’ space. This means that if
- straight ASCII text is read into First Word Plus in the regular way it
- can not be formatted because each line is treated as an entire word. By
- using the interrupt module and *EXECing the file it is as if it were
- being typed in from the keyboard. Spaces between words are thus
- translated into ‘soft’ spaces so that the resulting document can be
- formatted in the usual way. Brian Cowan
- 2.11
- • Greek characters − (Gerald Fitton) For some time now I have been
- considering converting all my old Wordwise files to PipeDream files.
- The thing that has been putting me off is that, since I teach (amongst
- other things) maths and statistics, I need to be able to print Greek
- letters such as CDSYabc defghijklmnopqrstuvwxy. It is relatively easy
- from Wordwise to define a new character on the Epson FX printer, but not
- so easy to include it in PipeDream’s Printer On string. I have got
- round this by running a BASIC program from within PipeDream’s !Run file
- that sends the necessary codes for the Greek characters to the printer.
- You can then have What-You-See-Is-What-You-Get Greek characters on
- screen by using the sequence <Alt>+E+C. This is what you do:
- 2.11
- Modify the !Run file to include the command
- 2.11
- BASIC -quit “<PipeDream$Dir>.
- 2.11
- Printers.Greek“
- 2.11
- My !Run file now looks like the one below.
- 2.11
- | > !PipeDream.!Run
- 2.11
- Set PipeDream$Dir <Obey$Dir>
- 2.11
- WimpSlot -min 160k -max 640k
- 2.11
- RMReInit InternationalKeyboard
- 2.11
- RMKill InternationalKeyboard
- 2.11
- BASIC -quit “<PipeDream$Dir>.
- 2.11
- Printers.Greek“
- 2.11
- RMEnsure FPEmulator 2.60 RMLoad
- 2.11
- <System$Path>Modules.FPEmulator
- 2.11
- Set Alias$@RunType_DDE Run
- 2.11
- <PipeDream$Dir>.!Run %%*0
- 2.11
- Set File$Type_DDE PDream
- 2.11
- IconSprites <PipeDream$Dir>
- 2.11
- .!Sprites
- 2.11
- Load <Obey$Dir>.piped.pd 8000
- 2.11
- DIR <Obey$Dir>
- 2.11
- Echo <26>
- 2.11
- Pointer 0
- 2.11
- Go 8000 ; %*0
- 2.11
- DIR adfs::HardDisc4.$
- 2.11
- Include the new program ‘Greek’ in a suitable directory; I have chosen
- the ‘Printers’ directory.
- 2.11
- 100 REM > <PipeDream$Dir>.
- 2.11
- Printers.Greek
- 2.11
- 150 :
- 2.11
- 160 *Alphabet Greek
- 2.11
- 180 VDU 2
- 2.11
- 200 RESTORE
- 2.11
- 210 REPEAT
- 2.11
- 220 READ byte%
- 2.11
- 230 IF byte%<>-1 THEN VDU 1,byte%
- 2.11
- 240 UNTIL byte%=-1
- 2.11
- 250 :
- 2.11
- 260 VDU 3
- 2.11
- 270 :
- 2.11
- 280 END
- 2.11
- 300 :
- 2.11
- 310 DATA 27,64
- 2.11
- 320 DATA 27,58,0,0,0
- 2.11
- 330 DATA 27,37,1,0
- 2.11
- 340 DATA 27,54
- 2.11
- 350 DATA 27,38,0,108,108
- 2.11
- 360 DATA 136,0,128,0,252,2,0,2,0,0,0,0
- 2.11
- 370 DATA 27,38,0,128,128
- 2.11
- 380 DATA 138,8,4,2,4,8,16,32,64,128
- 2.11
- ,0,0
- 2.11
- 390 DATA 27,38,0,176,176
- 2.11
- 400 DATA 168,0,0,64,160,0,160,64,0,0
- 2.11
- ,0,0
- 2.11
- 410 DATA 27,38,0,177,177
- 2.11
- 420 DATA 139,18,0,18,0,126,0,18,0,18
- 2.11
- ,0,0
- 2.11
- 430 DATA 27,38,0,195,196
- 2.11
- 440 DATA 137,130,124,130,0,128,0,128,
- 2.11
- 64,0,0,0
- 2.11
- 450 DATA 139,2,4,10,16,34,64,130,96,
- 2.11
- 26,4,2
- 2.11
- 460 DATA 27,38,0,211,211
- 2.11
- 470 DATA 139,130,0,198,0,170,0,146,0,
- 2.11
- 130,0,0
- 2.11
- 480 DATA 27,38,0,217,217
- 2.11
- 490 DATA 139,58,68,130,0,128,0,130,68
- 2.11
- ,58,0,0
- 2.11
- 500 DATA 27,38,0,225,249
- 2.11
- 510 DATA 138,28,34,0,34,20,8,20,32,2
- 2.11
- ,0,0
- 2.11
- 520 DATA 138,127,128,18,128,18,128,
- 2.11
- 114,12,0,0,0
- 2.11
- 530 DATA 11,64,0,64,32,16,11,4,8,16
- 2.11
- ,96,0
- 2.11
- 540 DATA 138,12,18,64,178,0,146,0,
- 2.11
- 146,76,0,0
- 2.11
- 550 DATA 137,8,20,8,34,8,34,8,34,0
- 2.11
- ,0,0
- 2.11
- 560 DATA 8,13,144,37,192,5,130,0,0,0
- 2.11
- ,0,0
- 2.11
- 570 DATA 10,64,60,64,0,64,0,64,63,0
- 2.11
- ,0,0
- 2.11
- 580 DATA 138,56,68,16,130,16,130,16,
- 2.11
- 68,56,0,0
- 2.11
- 590 DATA 71,0,0,124,0,4,0,0,0,0,0,0
- 2.11
- 600 DATA 138,62,0,8,0,20,0,34,0,0,0,0
- 2.11
- 610 DATA 136,130,68,40,16,8,4,2,0,0
- 2.11
- ,0,0
- 2.11
- 620 DATA 10,127,0,4,0,4,0,4,120,4,0,0
- 2.11
- 630 DATA 10,64,32,16,8,4,8,16,96,0
- 2.11
- ,0,0
- 2.11
- 640 DATA 9,128,40,212,0,149,0,149,2,0
- 2.11
- ,0,0
- 2.11
- 650 DATA 139,0,0,0,0,0,0,0,0,0,0,0
- 2.11
- 660 DATA 138,32,0,62,0,32,0,62,0,32
- 2.11
- ,0,0
- 2.11
- 670 DATA 9,63,64,0,68,0,68,56,0,0,0,0
- 2.11
- 680 DATA 139,0,0,0,0,0,0,0,0,0,0,0
- 2.11
- 690 DATA 139,28,34,0,34,0,34,28,32,0
- 2.11
- ,32,0
- 2.11
- 700 DATA 10,32,64,0,64,60,64,0,64,0
- 2.11
- ,0,0
- 2.11
- 710 DATA 9,64,56,4,0,4,0,120,0,0,0,0
- 2.11
- 720 DATA 10,56,68,0,68,187,68,0,68,56
- 2.11
- ,0,0
- 2.11
- 730 DATA 9,65,34,20,8,20,34,65,0,0
- 2.11
- ,0,0
- 2.11
- 740 DATA 11,120,4,0,4,251,4,0,4,120
- 2.11
- ,0,0
- 2.11
- 750 DATA 138,28,34,0,2,12,2,0,34,28
- 2.11
- ,0,0
- 2.11
- 760 DATA -1
- 2.11
-
- 2.11
- Incidently, this shows how you can include a BASIC program within an
- Obey file and then come back to RUN the rest of the Obey file.
- 2.11
- You have to remember to remove ESC “@” from the Printer On string
- otherwise you will lose all the character definitions you have just
- downloaded! G L Fitton.
- 2.11
- This final section of hints and tips has been extracted from the Archive
- Bulletin Board Service (BBS) by Richard Forster.
- 2.11
- (N.B. There may be some over-lap with other H & T, but I don’t have time
- to edit it out − I’m just off on my Holidays. Ed.)
- 2.11
- • First Word Plus Margins − It is possible to get First Word Plus to
- change its margins permanently, but it is not easy. It may also depend
- on your version of the software, and this method may not work on all
- versions. Make sure you try it on a backup copy!
- 2.11
- 10 wp%=OPENUP(“Resources.1wp.1wp”)
- 2.11
- 20 margin%=8 : REM or whatever is
- 2.11
- required
- 2.11
- 30 PTR#wp%=&2EF9C
- 2.11
- 40 BPUT#wp%,margin%
- 2.11
- 50 CLOSE#wp%
- 2.11
- • Taxan Multisync juddering − If you have an A400/1 or A3000 machine
- and are using it with a Taxan Multisync monitor, you may experience some
- juddering which can be overcome thus:
- 2.11
- A400/1: Fit a molex shunt to link 2. If you do not have a spare shunt,
- you can request one from Acorn Customer Services.
- 2.11
- A3000 : Take your machine to your local dealer. The modification is
- different from the A400/1 machines and you must not open your machine.
- 2.11
- • Using the Yes/No mouse icon − In order to use the Yes/No mouse icon,
- do:
- 2.11
- SWI “OS_Confirm”
- 2.11
- This changes the pointer shape, flushes the mouse buffer, waits until a
- key is pressed and then, on exit: R0 = (lowercased) character pressed, C
- flag is set if ESCAPE, Z flag set if character is ‘Y’
- 2.11
- • Saving Rom Sprites − To save rom sprites as a standard file, do:
- 2.11
- SYS“Wimp_BaseOfSprites” TO roms%
- 2.11
- SYS“OS_SpriteOp”,524,roms%,“filename”
- 2.11
- Save this as a BASIC program and double click it from the desktop.
- 2.11
- • Memory Re-allocation − You can re-allocate memory for spritesize,
- screensize etc. by loading a module called MEMALLOC. This can be found
- on Application Disc 2 in directory $.!Lander.
- 2.11
- • Hourglass − The following SYS calls affect the hourglass. Note that
- the hourglass is nested, so if you have turned it on twice it must be
- turned off twice.
- 2.11
- SYS“HourGlass_On” − Display Hourglass
- 2.11
- SYS“HourGlass_Off” − Remove Hourglass
- 2.11
- SYS“HourGlass_percentage”,number − Display Hourglass & percentage below.
- 2.11
- SYS“HourGlass_Smash” − Remove all hourglasses
- 2.11
- SYS“HourGlass-LEDs”,%AB − Where A is the top LED, B is the bottom LED
- 2.11
- SYS“HourGlass_On” has a delay of 1/3 sec before actually appearing. To
- make the delay the value of r0 use:
- 2.11
- SYS“HourGlass_Start”
- 2.11
- • Tiny directories − The adjust button on a tiny directory opens the
- application and removes that tiny directory.
- 2.11
- • RISC-OS Speedup − The following calls speed up the machine ROMs from
- 4Mhz to 8Mhz. Try them at your own risk. (Although under Arthur they
- caused crashes, they seem to work OK under RISC-OS) The first switches
- to higher speed, the second resets it:
- 2.11
- SYS“OS_UpdateMEMC”,64,64
- 2.11
- SYS“OS_UpdateMEMC”,,64
- 2.11
- • Terramex Cheat − For infinite lives, when you first load the game,
- type in “SUBJECTTOCHANGE” on the loading screen.
- 2.11
- • RISC-OS Bugs − Yes, already folk have found begun to find bugs in
- RISC-OS.
- 2.11
- 1) Module files which show up for *cat as modules but are dated 2:27
- 1901 do not get a module icon in a filer window − this is a property of
- unstamped files from AASM/OBJASM.
- 2.11
- 2) Edit does not work properly in modes 2,4 or 5. (But who would want to
- do so?! Ed.)
- 2.11
- 3) You can drag a directory into itself creating an copy within a copy
- until disc space runs out. (Could that be the answer to the ‘library
- virus’ in the Help!!! section? Ed.)
- 2.11
- 4) Resizing the interactive help window can cause the mouse pointer to
- move autonomously up the screen. Try it: Hold button down and resize it,
- keep holding, and it will go for a certain window size always.
- 2.11
- • MaxGammon under RISC-OS − If you have a copy of this game, the
- author has a version which works in the desktop. Send your original disk
- and a S.A.E. to 11 Maryland, Barkham, Wokingham, Berkshire RG11 4PB and
- you can have an upgrade to the newer version.
- 2.11
- • Last line in program − To find the last line in a BASIC program
- which is in memory, hold down <ctrl>+<shift> and then press <escape>
- twice.
- 2.11
- • Hearsay Problems − It is still possible to select a route from the
- screen when in a scrolling terminal, but it must be a ‘long’ click. A
- short click tries to home the cursor to where the pointer is by sending
- a string of control codes. The answer is to hold the button down a bit
- longer or use the keyboard.
- 2.11
- If you have problems with Xmodem make sure that Vasscomm is turned off.
- 2.11
- • Filer_OpenDir − When using Filer_OpenDir, it is important to get the
- full pathname correct. For instance, if your hard disc has the name
- ‘Fred’ and you want to open the directory $.Foo, you should use:
- 2.11
- *Filer_OpenDir adfs::Fred.$.Foo
- 2.11
- and not something like:
- 2.11
- *File_OpenDir adfs::4.Foo
- 2.11
- The reason is that when you click on the drive icon, the Filer checks
- the list of open windows to see if the requested pathname is already
- visible. Unfortunately it is not too intelligent about this, and if the
- names do not match exactly, the Filer will open another window. This
- will have the side effect that when Dismount is used only windows with
- the first pathname will be closed.
- 2.11
- • Legal Text Scaling for Multisyncs − Richard Averill’s hint last
- month (Archive 2.10 pp 19/20) to help rescale text in multisync modes
- could be done more legally using:
- 2.11
- VDU 23,17,7,flags,x;y;0,0
- 2.11
- flags => bit 0 = not implemented
- 2.11
- bit 1 = 1 => set size of VDU 5 characters
- 2.11
- bit 2 = 1 => set size of VDU 5 spacing
- 2.11
- 10 REM > CharSize Demonstration
- 2.11
- of changing character size
- 2.11
- 20 REM By Martin Simmons 10/07/89
- 2.11
- 30
- 2.11
- 40 MODE 12
- 2.11
- 50
- 2.11
- 60 VDU 5:CLS:PRINT‘’
- 2.11
- 70 GCOL 1
- 2.11
- 80 PROCprint(8,16,“Double height”)
- 2.11
- 90 PRINT
- 2.11
- 100 GCOL 2
- 2.11
- 110 PROCprint(16,8,“Double width”)
- 2.11
- 120 PRINT
- 2.11
- 130 GCOL 3
- 2.11
- 140 PROCprint(16,16,“Double size”)
- 2.11
- 150 PRINT
- 2.11
- 160 GCOL 5
- 2.11
- 170 PROCprint2(8,8,16,16,“Double
- 2.11
- spaced“)
- 2.11
- 180 GCOL 7
- 2.11
- 190 PROCprint(8,4,“Mangled half
- 2.11
- height“)
- 2.11
- 200 PRINT‘’
- 2.11
- 210 GCOL 6
- 2.11
- 220 PROCprint(120,120,“BIG”)
- 2.11
- 230 VDU 4
- 2.11
- 240 END
- 2.11
- 250
- 2.11
- 260 DEF PROCprint(X%,Y%,text$)
- 2.11
- 270 VDU 23,17,7,6,X%;Y%;0,0
- 2.11
- 280 PRINT text$
- 2.11
- 290 ENDPROC
- 2.11
- 300
- 2.11
- 310 DEF PROCprint2(X%,Y%,sx%,sy%
- 2.11
- ,text$)
- 2.11
- 320 VDU 23,17,7,2,X%;Y%;0,0
- 2.11
- 330 VDU 23,17,7,4,sx%;sy%;0,0
- 2.11
- 340 PRINT text$
- 2.11
- 350 ENDPROC
- 2.11
-
- 2.11
- • ARM assembler T option − Martyn Lovell says that although the
- assembler sees the T option for the LDR mnemonic the same as the !
- option (Archive 2.10 p 9), it is not used in the same way. The ! option
- should be used to force write back with pre-indexed addressing while the
- T option should be used with post-indexed addressing to cause the -TRAN
- pin on the ARM to go low for the duration of the data transfer. This is
- used by an OS in non-user modes to allow the OS to generate a user-mode
- address.
- 2.11
- • ALTernative keys − The RISC-OS Inter-nationalKeyboard module
- provides the facility for typing control characters by holding down
- <alt> and typing the number on the numeric keypad. In addition, the
- following keys produce symbols when pressed with <alt> held down:
- 2.11
- 1 gives 1 2 gives 2 3 gives 3 ~ gives Â
- 2.11
- 9 gives ± 0 gives û , gives x . gives Ö
- 2.11
- R gives ¨ Y gives ´ S gives ¤ Z gives Ç
- 2.11
- X gives È C gives ¢ M gives µ
- 2.11
- shifted C gives ©
- 2.11
- Other keys return nothing. The old Arthur effect of using
- <ctrl><shift><alt> to add 128 to the code can be produced by RMKILLing
- this module. Doing this will also allow the use of <alt> plus a cursor
- key in the BASIC Editor which does not work with this module installed.
- 2.11
- • Colour cursor for the BASIC Editor − Here is a little program which
- will alter the ArmBE module so that you can change the colour of the
- cursor.
- 2.11
- 10 REM > ColourEdit Make a colour
- 2.11
- cursor for the BASIC Editor
- 2.11
- 20 REM By Martin Simmons 11/07/89
- 2.11
- 30 REM I use yellow background,
- 2.11
- blue foreground, red cursor
- 2.11
- (1=6 EOR 7)
- 2.11
- 40
- 2.11
- 50 colour%=6 :REM **** CHANGE
- 2.11
- THIS LINE TO CHANGE THE
- 2.11
- COLOUR (EOR 7) ****
- 2.11
- 60 DIM buf% &10000
- 2.11
- 70 OSCLI “Load :App2.Modules.
- 2.11
- BasicEdit “+STR$~buf%
- 2.11
- 80 P%=buf%+&81E4
- 2.11
- 90 [ SWI &100+colour% ;Change
- 2.11
- background palette
- 2.11
- 100 ]
- 2.11
- 110 zi%=buf%+&8320:zi%+=8+4*
- 2.11
- ((!zi%<<8)>>8)
- 2.11
- 120 wind%=buf%+&8310:wind%+=8+4*
- 2.11
- ((!wind%<<8)>>8)
- 2.11
- 130 P%=buf%+&8310
- 2.11
- 140 [ SWI “OS_WriteS”
- 2.11
- 150 EQUB 17 : EQUB 128+colour%
- 2.11
- ;Set background colour
- 2.11
- 160 EQUB 12 ;Clear screen
- 2.11
- 170 EQUB 23 : EQUB 16 : EQUB 1
- 2.11
- ;Set cursor movement
- 2.11
- 180 EQUS STRING$(4-(P% AND 3)
- 2.11
- ,CHR$0)
- 2.11
- 190 BL zi%
- 2.11
- 200 BL wind%
- 2.11
- 210 ]
- 2.11
- 220 INPUT‘“Enter new file name for
- 2.11
- the editor: “file$
- 2.11
- 230 OSCLI “Save ”+file$+“ ”+STR$
- 2.11
- ~buf%+“ +94B4”
- 2.11
- 240 OSCLI “SetType ”+file$+“ FFA”
- 2.11
-
- 2.11
- • Wild card copy for RISC-OS − The destination parameter of the *Copy
- command now has greater freedom regarding wild cards i.e. wildcards in
- the destination can be used even though they were not used for the
- source
- 2.11
- e.g. *COPY :0.Text :1.* is now valid.
- 2.11
- • RISC-OS disc names − It is possible to set a system variable which
- will behave like a disc name. If you *Set <discname>$Path <filepath> you
- can then access you files by :<discname>.<filename>. For example:
- 2.11
- *Set W App1:$.
- 2.11
- *Run W:!Edit
- 2.11
- You can even define several paths, just like File$Path and Run$Path:
- 2.11
- *Set W App1:$.,App2:$.
- 2.11
- *RMLoad W:Modules.BasicEdit
- 2.11
- *Run W:!Edit
- 2.11
- • Memory Usage − Gerald Fitton − Of course, the ‘best’ machine has
- both hard disc and 4Mb of memory, but some hard disc machines have less
- memory. If you have the ‘best’ then you will probably put all the
- !(application) directories that you use in your root ($) directory for
- instant access. When you click on the :4 icon in the icon bar, all your
- application !Boot files will be RUN and memory will be allocated to each
- application (so that it is instantly available). This is true even when
- the applications are not installed on the icon bar. If you have less
- memory, say 1Mb, then you may find that your dormant applications are
- using up too much memory for some of the more sophisticated appli
- cations. The solution is to put your applications not in the root
- directory but in a (non-!) sub-directory. For example, !Patience can be
- put together with !Zarch in a games directory, where Games is in the
- root directory. This way, only when you open the Games directory (by
- double clicking on it) will you use up memory on the dormant appli
- cations !Patience and !Zarch.
- 2.11
- • 1st Mail solution − When using 1st Mail in RISC-OS, the printer
- options are hidden underneath another window. Mr Burrows has solved the
- problem by altering the template file:
- 2.11
- *Load $.Resources.1wp.
- 2.11
- 1ml_templa 9000
- 2.11
- !&9AA8=155
- 2.11
- !&9AB0=1023
- 2.11
- *Save $.Resources.1wp.
- 2.11
- 1ml_templa 9000+AEA
- 2.11
- *SetType $.Resources.1wp
- 2.11
- .1ml_templa FFF
- 2.11
- • RISC-OS Hints and Tips − S C Costin − When using !PrinterDM on the
- Desktop to print a text file, if the printer and Archimedes are set up
- where there are no ignore characters configured, i.e. can be checked as
- follows:
- 2.11
- F12 ;Press function key 12 from desktop
- 2.11
- *status ignore ;Enter command
- 2.11
- No ignore ;Returned after entering command
- 2.11
- The problem is that the line feed is suppressed and therefore over-
- printing occurs. This is easily overcome by clicking on the !PrinterDM
- icon on the icon bar, which produces a window, and selecting CR or LF
- conversion.
- 2.11
- A more permanent solution is to edit the file PrData. To do this hold
- shift key while clicking on the application directory !PrinterDM, then
- drag PrData icon over Edit icon on the icon bar and release the mouse
- button. At the end of the printer driver data change line: from 0 to 1
- i.e. change line:
- 2.11
- 0;0/1 1=>convert CR or LF to CR,LF
- 2.11
- to:
- 2.11
- 1;0/1 1=>convert CR or LF to CR,LF
- 2.11
- • Pipedream conversion to ADFS E type floppy disc by S C Costin
- 2.11
- 1) Format new disc using the new E format.
- 2.11
- 2) Name the new disc NewPd.
- 2.11
- 3) Backup your original copy to the disc NewPd, using *COPY to retain
- E format.
- 2.11
- 4) Copy the !PipeDream application from the support disc to the root
- directory of disc NewPd.
- 2.11
- 5) Copy the Floating Point Emulator module from directory
- !System.Modules on Application Disc 1 into directory $.!PipeDream on
- disc NewPd.
- 2.11
- 6) Delete $.!boot
- 2.11
- 7) Delete $.piped.fpe2
- 2.11
- 8) Delete $.rs423drive
- 2.11
- 9) Add the following obey file called $.!boot
- 2.11
- | > $.!boot
- 2.11
- *quit
- 2.11
- RUN $.!pipedream.!run
- 2.11
- 10) Leave the !PipeDream.!boot file as copied from the support disc.
- 2.11
- | > !PipeDream.!Boot
- 2.11
- Set PipeDream$Dir <Obey$Dir>
- 2.11
- Set Alias$@RunType_DDE Run <PipeDream$Dir>.!Run %%*0
- 2.11
- Set File$Type_DDE PDream
- 2.11
- IconSprites <PipeDream$Dir>
- 2.11
- .!Sprites
- 2.11
- 11) If mouse cursor control is required insert lines 7 & 8 in the !Run
- Obey file as follows:
- 2.11
- | > !PipeDream.!Run
- 2.11
- Set PipeDream$Dir <Obey$Dir>
- 2.11
- WimpSlot -min 450k
- 2.11
- ||RMReInit InternationalKeyboard
- 2.11
- RMKill InternationalKeyboard
- 2.11
- RMEnsure FPEmulator 2.60
- 2.11
- RMLoad <Obey$Dir>.FPEmulator
- 2.11
- $.piped.cursorrm
- 2.11
- mousecursor on 13 &c5 131
- 2.11
- Set Alias$@RunType_DDE Run <PipeDream$Dir>.!Run %%*0
- 2.11
- Set File$Type_DDE PDream
- 2.11
- IconSprites <PipeDream$Dir>
- 2.11
- .!Sprites
- 2.11
- Load $.Library.pd 8000
- 2.11
- Echo <26>
- 2.11
- Pointer 0
- 2.11
- Go 8000 ; %*0
- 2.11
- • Update for Artisan and ProArtisan − Clares have now produced an
- application which will up-date your Artisan and ProArtisan discs for
- RISC-OS. It has been put on both this month’s and last month’s program
- discs. Many thanks to Duncan Burbridge, Kimba, Australia (age 12) who
- also sent us information on updating Artisan for RISC-OS.
- 2.11
- • Not enough screen memory? − If a program expects to run in a
- specific screen mode and not enough screen memory is available, it will
- usually report a ‘Bad Mode’ error when run from the desktop, as the
- screen memory can’t be expanded dynamically once the application has
- started. This can be fixed by either dragging the screen memory bar in
- the task window, or by entering the appro-priate mode first. A much
- more elegant way is to add the following line to the Obey file that
- starts the program: Echo <22><n> Where <n> is the mode. This ensures
- that the screen memory is allocated before the application starts and
- should appear before the *WimpSlot command.
- 2.11
- • Uncluttered cataloging − RISC-OS has a neat way of searching a disc
- without cluttering the screen. Use <adjust> to open a directory and it
- closes the one you were in, leaving only the new dir-ectory on the
- screen. To move back up the tree, click <adjust> on the close icon, and
- the next directory up will appear, closing the current directory (unless
- you are in the root directory, of course!).
- 2.11
- • Bye bye hard disk! − The RAM disc is fantastic but not much use on 1
- Mbyte machines. Also, note that when RAMFS is selected *bye does not
- park the head of the Winchester − so beware!!!
- 2.11
-
- • Archive Bulletin Board − This month’s password is “ARCAM” − which is
- apparently the name of Alan Glover’s hi-fi system!
- 2.12
- • Arthur 1.2 desktop − Nick Furniss has converted the Arthur 1.2
- desktop so that it works under RISC-OS. If you are interested, you
- should contact him at 87 Moordale Avenue, Bracknell, RG12 1TG.
- 2.12
- • Datachat Modem connections − These connect-ions were sent in by P
- Carlson who is happily using the Datachat to connect to Prestel.
- 2.12
- Archimedes Datachat
- 2.12
- 2 5
- 2.12
- 3 1
- 2.12
- 5 3
- 2.12
- Pins 2 & 3 on the Datachat are linked together and pins 1, 6 and 8 are
- linked on the Archimedes.
- 2.12
- • First Word Plus − Volker Eloesser of West Germany, in response to
- Help needed 2.11, p.15, concerning First Word Plus:
- 2.12
- 1) This sounds as if the printer is configured to a shorter paper length
- than the computer. If the computer sends a page which is one line longer
- than the configured length, the printer will feed the next full page
- after receiving a form-feed command. If the reconfiguration of the
- printer does not work, change the FormFeed command in the printer driver
- (HEX-file) to a no-operation code, such as ‘00’ or ‘*’ and compile a new
- CFG-file.
- 2.12
- 2) Simply close the window by clicking on the close-symbol on the top-
- left corner of the text window before printing.
- 2.12
- • First Word Plus word-count − The word count in First Word Plus does
- not work properly! It counts a word which contains an apostrophe as two
- words e.g. I’m or it’s. This was very embarrassing for one Archive
- reader, who insisted to his publisher, that he had written a certain
- number of words.
- 2.12
- • Graphic Writer bug − If you insert a block marker at the end of a
- document, it is possible to scroll past the ‘End’ point. This is usually
- remedied by scrolling back but if you continue editing it is possible to
- crash the application by pressing <ctrl><down arrow> followed by <page
- down> or <page up>. So be careful.
- 2.12
- • Home Accounts − Just a quick comment on Alan Highet’s Home Accounts
- review in 2.10 − one of his criticisms is that the reporting is limited
- to a whole year’s transactions thus possibly taking up lots of paper;
- whilst this is true, report output can, under RISC-OS, be dragged
- directly into !EDIT and then you can print bits needed. Not ideal, but
- a solution.
- 2.12
- Also he says that transactions are deleted after a year − this is not
- completely true − only the last 12 months transactions can be graphed
- and edited, but all transactions are kept for viewing in the account/
- header windows. Brian Debenham
- 2.12
- • Prolog X − We have a hint & tip on “Retaining facts, rules and lists
- produced in Prolog X” written by C.G.Williamson. It was fairly long and
- rather technical, so we did not print it. If anyone would like a copy of
- this, please send an SAE to Adrian Look at the Archive office. (We have
- just received a letter from Jim Davis who says that he would like to
- commend Chris for his “brilliantly simple use of the Prolog built-in
- predicates ‘tell’ and ‘told’.” He quotes several learned texts and says
- that they all miss Chris’ simple combination of ‘tell’, ‘listing(X,Y)’,
- ‘told’ as a method of avoiding the very contrived, but hitherto common,
- use of ‘tell’ and ‘told’. He believes that Chris’ expedient will become
- standard.) Should we therefore publish Chris’ comments? Are there many
- Prolog users out there? Ed.)
- 2.12
- • QL Reader − Brian Oliver points out that there is a problem with
- QLreader (Shareware 12) in its drive select. Otherwise it is excellent
- and it now works fine with my 5.25“ drive connected to slot :2 after the
- following modification. The SYS ”ADFS_DiscOp“ command on line 2750 is
- wrong. It should be:-
- 2.12
- SYS “XADFS_DiscOp”,,(1+List%<<6),
- 2.12
- Start%+(drive%<<29),bf%,512 TO flags%
- 2.12
- It is then necessary to set the default drive on line 240 and those for
- selection on lines 19740 & 1950.
- 2.12
- • RS423 Archimedes to Beeb − J.O.Linton: I have been having trouble
- with my RS423 port. My Beeb would listen to my Archimedes but my
- Archimedes would not receive data correctly from my Beeb. I have a
- fairly early Archimedes so I went to some trouble to get the field
- modification done to the serial chip only to find that the fault was
- exactly as before. Then my dealer sent me a leaflet from Acorn (Part No.
- 0476.033) called ‘Using the serial port’ in which I found this vital
- paragraph:
- 2.12
- ‘The Acorn BBC model B uses one stop bit by default, whereas the default
- configuration of an Archimedes computer is two stop bits. You are
- advised to change the DATA configuration of your Archimedes computer to
- 5 if you are using your serial port to pass data to or from a BBC model
- B.’
- 2.12
- *Configure DATA 5 and Hey Presto − it worked!
- 2.12
- • Systemdevs − When using the System Devices to send characters to the
- printer, the printer ignore character feature is not ‘used’, and all
- characters are sent to the printer − including the printer ignore
- character. This is very useful for sending an alternative character set
- to the printer (if it has a user-defined graphics option) as no
- characters will be ‘stripped’ − rather like using VDU 1,char with the
- VDU drivers. All that needs to be done is give a command similar to:
- *COPY UserChars printer: ~C~V. Michael Ben-Gershon
- 2.12
- • Teletext Adaptors − Richard House has written some software which
- allows the Archimedes to “grab” teletext pages using the Acorn Teletext
- adaptor. If any one is interested, we can put you in touch with him.
- 2.12
- Herman Stevens from Belgium, says that in order to get the Morley
- teletext adaptor to work with RISC-OS, you require: I/O podule, Soft’s
- “Support” and “ATS” saved on ADFS disc, !65Host copied on the same disc
- and !boot file as follows:
- 2.12
- CLS
- 2.12
- *DIR !65Host
- 2.12
- *RMLoad !RunImage
- 2.12
- *CACHEROM 1 ADFS
- 2.12
- *CACHEROM 3 SUPPORT
- 2.12
- *CACHEROM 4 ATS
- 2.12
- *EMU.
- 2.12
- By typing “TTEXT” you can start the Support ROM and TELETEXT will start
- the ATS ROM.
- 2.12
- • Taxan Multisync wobbles − The hint last month was expressed in
- rather too technical language. I’ll try again.
- 2.12
- Look at the p.c.b. from the front of the computer and near the serial
- port socket you will see a couple of metal pins sticking up and on the
- board alongside it, the inscription “LK2”. Then over to the left of
- that, about in line with the headphone socket is a set of five pairs of
- pins inscribed as “PL2”. It should have a couple of black plastic/metal
- sleeves on it. These are spare metal shorting links. Slide one of these
- links off (upwards) and put it instead on LK2. That should do the trick.
- 2.12
- • Compressing Text with OS_PrettyPrint − Under RISC-OS, the
- ‘OS_PrettyPrint’ SWI (c.f. Archive 2.9 p9) has been extended to include
- a ‘dictionary’ facility. When an ASCII <27> code is encountered, the
- next byte will be used to find (and print) a dictionary entry. For
- example:
- 2.12
- Consider the following dictionary:
- 2.12
- 1) Hello
- 2.12
- 2) this
- 2.12
- 3) is
- 2.12
- 4) Archie
- 2.12
- If you send the codes <27><4> to the OS_Pretty Print SWI, tthe text
- ‘Archie’ will be printed.
- 2.12
- The two bytes <27><4> replace the 5 bytes <65> <114><99><104><101> which
- we actually want printed. The operating system uses this feature to
- compress any strings it might need to print.
- 2.12
- The structure of a dictionary is shown below:
- 2.12
- <entry length> }
- 2.12
- <string> } repeat
- 2.12
- <0> }
- 2.12
- .
- 2.12
- .
- 2.12
- <0> ; end of of dictionary
- 2.12
- Therefore to print an OS_PrettyPrint SWI, you must use the following
- entry parameters:
- 2.12
- r0 -> pointer string
- 2.12
- r1 -> pointer dictionary (0 -> system dictionary)
- 2.12
- r2 -> special string (printed if dictionary entry zero is accessed)
- 2.12
- 10 REM >PrettyPrt
- 2.12
- 20
- 2.12
- 30 REM ****************************
- 2.12
- 40 REM * Using the OS_PrettyPrint *
- 2.12
- 50 REM * Dictionary Facility *
- 2.12
- 60 REM * by Adrian Philip Look *
- 2.12
- 70 REM * 21st August 1989 *
- 2.12
- 80 REM ****************************
- 2.12
- 90
- 2.12
- 100 DIM dictionary% &400:REM allocate
- 2.12
- some space for the dictionary
- 2.12
- 110 DIM buffer% 3 : REM allocate some
- 2.12
- space for the string
- 2.12
- 120
- 2.12
- 130 PROCsetupdictionary :REM make a
- 2.12
- user dictionary
- 2.12
- 140
- 2.12
- 150 buffer%?0=27 : REM a dictionary
- 2.12
- entry follows
- 2.12
- 160 buffer%?2=0 : REM terminate
- 2.12
- OS_PrettyPrint string
- 2.12
- 170 FOR x%=0 TO 5
- 2.12
- 180 buffer%?1=x% : REM dictionary
- 2.12
- entry x%
- 2.12
- 190 PRINT’x%;“ : ”;
- 2.12
- 200 SYS “OS_PrettyPrint”,buffer%,
- 2.12
- dictionary%,“<special string>” +CHR$(0)
- 2.12
- 210 NEXT x%
- 2.12
- 220 PRINT‘
- 2.12
- 230 END
- 2.12
- 240
- 2.12
- 250 DEFPROCsetupdictionary
- 2.12
- 260 x%=dictionary%
- 2.12
- 270 READ s$
- 2.12
- 280 WHILE s$<>“***”
- 2.12
- 290 x%?0=LEN(s$)+2:REM entry length
- 2.12
- 300 $(x%+1)=s$+CHR$(0) :REM null
- 2.12
- terminated string
- 2.12
- 310 x%+=LEN(s$)+2
- 2.12
- 320 READ s$
- 2.12
- 330 ENDWHILE
- 2.12
- 340 ?x%=0 : REM zero length string to
- 2.12
- terminate dictionary
- 2.12
- 350 ENDPROC
- 2.12
- 360
- 2.12
- 370 DATA Hello,this,is,Archie,“***”
- 2.12
-
- 2.12
- • Copy Options − In Archive 2.10 page 15 we said that there were two
- new copy options L and N. In fact there are five new options, the other
- three being:
- 2.12
- A − Force destination access to same as source
- 2.12
- S − Restamp datestamped files after coping
- 2.12
- T − Only copy the directory structure
- 2.12
- • Filer_OpenDir and Filer_CloseDir (cont’d) − Gary Atkinson says that
- these commands do not use system variables and so the full directory
- name must be used every time. This makes life difficult for RISC-OS
- applications which want to open a Filer window relative to their present
- position on the disc (which may change e.g. hard disc users).
- 2.12
- Therefore, with this context in mind, Gary has sent in the following
- hint which will read the value of a system variable:
- 2.12
- DIM buffer% 255, temp% 255
- 2.12
- SYS “OS_CLI”,“Filer_OpenDir ” + FNread_system_variable(“Obey$Dir”)
- 2.12
- END
- 2.12
- :
- 2.12
- DEFFNread_system_variable(v$)
- 2.12
- LOCAL len%,x%
- 2.12
- $buffer%=v$
- 2.12
- SYS “OS_ReadVarVal”,buffer%,temp%
- 2.12
- ,255,0,3 TO ,,len%
- 2.12
- v$=“”
- 2.12
- FOR x%=0 TO len%-1
- 2.12
- v$+=CHR$(buffer%?x%)
- 2.12
- NEXT x%
- 2.12
- =v$
- 2.12
- • Mode 16, 17 and 24 co-ordinates − Under RISC-OS modes 16 and 17 now
- support graphics. This means that a resolution of 1056x256 can now be
- obtained on a normal monitor. However, it should be noted that the
- screen size, in OS co-ordinates, is not 1280x1024 (or even 2048x1024 as
- Richard Averill suggested last month) but 2111x1024. In order to convert
- between the two sizes you should use the following function:
- 2.12
- DEFFNconvert2111to1280(x%)
- 2.12
- =INT(33*(x%+0.5)/20)
- 2.12
- • Modifying !Calc to accept keyboard input − In order to modify the
- calculator on the Applications Disc 2 to accept keyboard input you must:
- 2.12
- 1) Leave the desktop and type *BASIC.
- 2.12
- 2) Mount Applications Disc 2 in drive 0.
- 2.12
- 3) LOAD “!Calc.!RunImage” and make the follow-ing modifications:
- 2.12
- Add the following lines:
- 2.12
- 315 WHEN 8 : PROCwndkeyprssd(!q%,
- 2.12
- q%!24)
- 2.12
- 750 DEFPROCwndkeyprssd(handle%
- 2.12
- ,key%) : IF key%>47 AND key%<5 THEN PROCdigit(CHR$(key%))
- 2.12
- 751 CASE key% OF
- 2.12
- 752 WHEN 42: PROCoperator(“*”)
- 2.12
- 753 WHEN 43: PROCoperator(“+”)
- 2.12
- 754 WHEN 47: PROCoperator(“/”)
- 2.12
- 755 WHEN 46: PROCpoint
- 2.12
- 756 WHEN 45: PROCoperator(“-”)
- 2.12
- 757 WHEN 95: PROCoperator(“-”)
- 2.12
- 758 WHEN 61: PROCoperator(“=”)
- 2.12
- 759 ENDCASE
- 2.12
- Now renumber the program (just type RENUMBER <return>), and then
- type:
- 2.12
- 855 PROCupdate(calc%,12,-28-32,10
- 2.12
- *16+12,24):PROCcalc:ENDPROC
- 2.12
- 105 q%!60=15<<12
- 2.12
- 4) SAVE “!Calc.!RunImage”
- 2.12
- To use text with the modified calculator just click in the calculator
- window (not on an icon) and type away. Note that a caret will not
- appear.
- 2.12
- • New CMOS RAM settings for outline fonts − When using the outline
- font manager (which is supplied with the Acorn DTP) you can set various
- font cache thresholds. These thresholds govern which mode of caching is
- used i.e. vertical & horizontal subpixeled, cached outlines, anti-
- aliased outlines, non-exact font from x90y45, and ‘auto-grow’ cache.
- 2.12
- The various thresholds can be set up as follows:
- 2.12
- *Configure FontSize <n>k ; min size of cache
- 2.12
- *Configure FontMax <n>k ; max size of ‘auto-grow’ cache
- 2.12
- *Configure FontMax1 <h> ; max size of non-exact font x90y45
- 2.12
- *Configure FontMax2 <h> ; max size of anti-aliased outlines
- 2.12
- *Configure FontMax3 <h> ; max size of cached outlines
- 2.12
- *Configure FontMax4 <w> ; max size of horizontally-subpixeled font
- 2.12
- *Configure FontMax5 <h> ; max size of vertically-subpixeled font
- 2.12
- where <h> refers to maximum font pixel height (pixel height = point
- height * dpi / 72), and <w> to the maximum font pixel width.
- 2.12
- Some programs may corrupt the CMOS RAM and soil the font cache
- thresholds. This may dramatically reduce the efficiency of cached fonts.
- Use the *STATUS command to view your currents threshold settings (and
- make a note of them just in case the CMOS RAM gets corrupted).
- 2.12
- • New FPE − There is a new version of the floating pointer emulator
- provided on the Applications Disc 2. If any of your programs use older
- versions of the FPE, you should update the module. This is because the
- pre 2.60 release versions of the FPE have a bug (a badly formed module
- header) which happens to work under Arthur 1.2.
- 2.12
- • New system variable − There is a new system variable, called
- Font$Path, which tells the Archimedes where anti-aliased fonts can be
- found. It has the same syntax as Load$Path and Run$Path. This means that
- fonts can be accessed from several different directories e.g. *Set
- Font$Path $.Fonts1, $.Fonts2,$.Fonts3 will allow the fonts manager to
- access anti-aliased fonts from three directories $.Font1, $.Font2 and
- $.Font3. To remain compatible with the earlier versions of the font
- manager you can *Set Font$Path <Font$Prefix>.
- 2.12
- • OS_ChangedBox − RISC-OS now offers a facility which will keep track
- of the areas on the ‘screen’ which have been altered by calls to the VDU
- drivers. When enabled, this feature will pro-vide a rectangle (co-
- ordinates in pixels from the bottom left-hand corner) of the area on the
- ‘screen’ which has been changed. The parameters are:
- 2.12
- Entry:
- 2.12
- R0 = 0 -> disable changed box calculations
- 2.12
- = 1 -> enable changed box calculations
- 2.12
- = 2 -> reset changed box to null rectangle
- 2.12
- = -1 -> read changed box info
- 2.12
- Exit:
- 2.12
- R0 = old enable state
- 2.12
- R1 points to a fixed block of 5 words
- 2.12
- [R1, #0] = disable/enable flag
- 2.12
- [R1, #4] = x-coordinate of left edge of box
- 2.12
- [R1, #8] = y-coordinate of bottom edge of box
- 2.12
- [R1, #12] = x-coordinate of right edge of box
- 2.12
- [R1, #16] = y-coordinate of top edge of box
- 2.12
- An example program:
- 2.12
- 10 REM >Changed
- 2.12
- 20
- 2.12
- 30 REM *************************
- 2.12
- 40 REM * Using OS_ChangedBox *
- 2.12
- 50 REM * by Adrian Philip Look *
- 2.12
- 60 REM * 22nd August 1989 *
- 2.12
- 70 REM *************************
- 2.12
- 80
- 2.12
- 90 MODE 12 : OFF
- 2.12
- 100
- 2.12
- 110 PROCenablecalulations
- 2.12
- 120 PROCresetrectangle
- 2.12
- 130
- 2.12
- 140 LINE 400,400,600,600
- 2.12
- 150 PROCreadbox
- 2.12
- 160 RECTANGLE FILL 300,300,10,10
- 2.12
- 170 PROCreadbox
- 2.12
- 180 RECTANGLE FILL 700,700,30,30
- 2.12
- 190 PROCreadbox
- 2.12
- 200 CIRCLE 250,250,200
- 2.12
- 210 PROCreadbox
- 2.12
- 220 RECTANGLE 550,450,500,300
- 2.12
- 230 PROCreadbox
- 2.12
- 240
- 2.12
- 250 PROCdisablecalulations : ON
- 2.12
- 260 PRINT
- 2.12
- 270 END
- 2.12
- 280
- 2.12
- 290 DEFPROCresetrectangle
- 2.12
- 300 SYS “OS_ChangedBox”,2
- 2.12
- 310 ENDPROC
- 2.12
- 320
- 2.12
- 330 DEFPROCenablecalulations
- 2.12
- 340 SYS “OS_ChangedBox”,1
- 2.12
- 350 ENDPROC
- 2.12
- 360
- 2.12
- 370 DEFPROCdisablecalulations
- 2.12
- 380 SYS “OS_ChangedBox”,0
- 2.12
- 390 ENDPROC
- 2.12
- 400
- 2.12
- 410 DEFPROCreadbox
- 2.12
- 420 PROCdisablecalulations
- 2.12
- 430 SYS “OS_ChangedBox”,-1 TO ,data%
- 2.12
- 440 x0%=data%!4: y0%=data%!8
- 2.12
- 450 x1%=data%!12 : y1%=data%!16
- 2.12
- 460
- 2.12
- 470 PRINTTAB(0,0);“Changed Box
- 2.12
- Rectangle (in pixels not
- 2.12
- OS coords)“
- 2.12
- 480 PRINT“left x: ”;x0%;“ ”
- 2.12
- 490 PRINT“bottom y: ”;y0%;“ ”
- 2.12
- 500 PRINT“right x: ”;x1%;“ ”
- 2.12
- 510 PRINT“top y: ”;y1%;“ ”
- 2.12
- 520
- 2.12
- 530 PRINT‘“press any key to step
- 2.12
- through demo“
- 2.12
- 540 QQ=GET
- 2.12
- 550 PROCenablecalulations
- 2.12
- 560 ENDPROC
- 2.12
- • ProArtisan & Artisan upgrades to RISC-OS − ProArtisan discs need to
- be changed so that they work under RISC-OS. This upgrade avoids the
- dreaded “Filecore in use” error, and is available from Clares Micros if
- you send them a blank D-formatted disc.
- 2.12
- • RISC-OS printer drivers and Line Feeds − If your printer does not
- automatically generate line feeds when it receives a carriage return you
- can make the RISC printer drivers generate one for you. Once the printer
- drive is installed on you must click on the printer icon with the SELECT
- button. This will reveal a window which contains an option to convert
- single line feeds or carriage returns into a single line feed and
- carriage return i.e. CR or LF => CR,LF.
- 2.12
- If you wish to make this option permanent just select the ‘Save Choices’
- option on the printer driver menu.
- 2.12
- • RISC-OS will run old WIMP programs (i.e. it emulates the Arthur 1.2
- Window Manager) but because the emulation is not complete there are some
- anomalies with the sprite handling. (a) selected sprites are rendered
- incorrectly (b) sprite are scaled according to the screen mode (this did
- not happen before). In practice, however, this affects very few
- applications.
- 2.12
- • The *CDIR command for the ADFS, RAMFS, and NETFS now creates
- unlocked directories. This means that directories can be renamed, moved
- and deleted from the desktop. However, the contents of a directory must
- be deleted before the directory itself can be deleted.
- 2.12
- • The Window Manager (RISC-OS) no longer reserves 32k permanent memory
- for window definitions, etc but acquires memory from the RMA as it is
- needed. This means that some Arthur 1.2 wimp programs may fail to start,
- giving a ‘No room to create window’ error. This can usually be solved by
- increasing the memory allocated to the RMA (by dragging the RMA bar in
- the Task Manager) before starting the application.
- 2.12
- The following hints and tips were sent in by Paul Witheridge
- 2.12
- • Cancelling tasks from the “Task Display” − If you call up the Task
- Display by clicking the mouse menu button on the Task Manager Icon at
- the right-hand end of the icon bar and then selecting Task Display from
- the resulting menu, you will get, among other things, a one line display
- for each active task, showing the name of the task and how much memory
- it uses.
- 2.12
- If you position the pointer on that display line and click menu again,
- you will see a very similar menu, but this time there is a menu item for
- the task in question. This menu item has a sub-menu arrow. If you move
- the pointer onto it, you will be rewarded with a sub-menu with a just a
- single item, “Quit”. Clicking on this will usually, but not always,
- cause the task to terminate.
- 2.12
- From the programmer’s point of view, the next time the task in question
- issues a Wimp_Poll request, it will receive a reason code 18 with a
- subordinate code of 8 in the fifth word of the parameter block. It
- should interpret this as a directive to terminate.
- 2.12
- • Command files from within an Obey file − One of the main differences
- between Command files and Obey files is that input from a Command file
- can be passed to the OS Command Line Interpreter or to an application,
- while input from an Obey file is only passed to the Command Line
- Interpreter. This means that when an application program is started up
- by a RUN command in an Obey file, the following line of the Obey file
- will always be treated as a command and never as input to the appli
- cation program. For example if the following is an Obey file:
- 2.12
- Dir ADFS:$.BasPgms
- 2.12
- BASIC
- 2.12
- Dir ADFS:$
- 2.12
- Then the second DIR command will be executed after quitting from BASIC.
- If, instead, the file is a Command file, then as soon as BASIC starts up
- it will read the “Dir ADFS:$” as input (and since it does not begin with
- an asterisk, it will not understand it and treat it as a mistake).
- 2.12
- You can use a combination of Obey and Command files to start up an
- application program and provide it with an initial set of input data.
- This can be very useful, but to be successful, you must know a little
- more about what happens when a Command file is executed from within an
- Obey file. Consider the following example:
- 2.12
- | > ObeyFile
- 2.12
- Echo Output 1 from ObeyFile
- 2.12
- Exec CmndFile
- 2.12
- Echo Output 2 from ObeyFile
- 2.12
- | > CmndFile
- 2.12
- Echo Output from CmndFile
- 2.12
- When the Obey file is run, the following output is produced:
- 2.12
- Output 1 from ObeyFile
- 2.12
- Output 2 from ObeyFile
- 2.12
- * | > CmndFile
- 2.12
- * Echo Output from CmndFile
- 2.12
- Output from CmndFile
- 2.12
- From this output, you can see that despite the fact that the “Exec
- CmndFile” command came between the two “Echo” commands in the Obey file,
- the contents of the Command file were not actually executed until the
- Obey file was finished with. The Command Line Interpreter obviously
- gives precedence to Obey files over Command files. All that the EXEC
- command did was to open the Command file for input and assign the system
- input stream to it. It did not actually read anything from it. This was
- left to the Command Line Interpreter, but it did not resume reading from
- the system input stream until it had exhausted the Obey file.
- 2.12
- Since application programs can take input from a Command file, but not
- from an Obey file, an EXEC command can be used within an Obey file to
- “stack” input ready for an application program. The following example of
- an Obey file and a Command file can be used to create a RISC-OS
- application for the Basic Editor:
- 2.12
- | > !BasicEdit.!Run
- 2.12
- If “<System$Path>” = “” then Error 0 System resources cannot be found
- RMensure ARMBasicEditor 1.00 RMload System:Modules.BasicEdit
- 2.12
- Key 2 EDIT .|M
- 2.12
- Key 4 *QUIT|M
- 2.12
- Wimpslot -min 100k
- 2.12
- Exec <Obey$Dir>.!Init
- 2.12
- Basic -load %*0
- 2.12
- *| > !BasicEdit.!Init
- 2.12
- EDIT
- 2.12
- Both files should reside in a application directory called “!BasicEdit”.
- An accompanying “!sprites” file would be nice, but is not essential
- since in its absence, RISC-OS will use the default sprite for an
- application.
- 2.12
- The “Exec <Obey$Dir>.!Init” command in the Obey file opens the Command
- file and when the following “Basic -load %*0” command executes, BASIC
- reads the contents of the Command file as if it were being entered from
- the keyboard.
- 2.12
- If you double-click on the icon for “!BasicEdit” in a directory viewer,
- the Basic Editor is started up ready to create a new program. If you
- install “!BasicEdit” on the icon bar using TinyDirs, you can drag the
- icon for a BASIC program from a directory viewer to the “!BasicEdit”
- icon on the icon bar, which will start up the Basic Editor and load the
- program into it ready to edit.
- 2.12
- The following example consists of an Obey file and a Command file to
- start up Twin as an application and to change the default colours used
- by twin from white on black to blue on cyan. The contents of the Obey
- file, which is the !Run file in the !Twin application directory, are:
- 2.12
- | > !Twin.!Run
- 2.12
- WimpSlot -min 100k
- 2.12
- Load ADFS:%%.Twin 8000
- 2.12
- Exec <Obey$Dir>.!Init
- 2.12
- Go 8000 ; %*0
- 2.12
- and the contents of the Command file, which is named “!Init” and also
- resides in the !Twin directory, are (in the notation used for *BUILD
- etc):
- 2.12
- |!|A|S|@|F|@|@|@|S|A|D|@|@|@
- 2.12
- The Obey file assumes that Twin resides in the current ADFS library,
- refering to it as “ADFS:%%”. “ADFS” must be specified in case the ADFS
- is not the current filing system and “%%” will be replaced by a single
- percentage sign by the argument substitution process for Obey files.
- Twin is loaded at &8000 because in a RISC-OS multi-tasking environment,
- the amount of storage available to start up TWIN is often not enough to
- load it at its “normal” load address of &80000 (leading to the dreaded
- error message: “No writeable memory at this address”). Note that loading
- Twin at &8000 leaves no memory for starting up applications from within
- Twin. Such applications would normally run at &8000 and utilise the
- memory between &8000 and Twin’s normal load address at &80000).
- 2.12
- The Command file seems to consist of unintelligible hieroglyphics. The
- first character (shown as “|!|A”) is actually &81 and has the same
- effect on Twin as pressing function key one. The remaining eight
- characters (shown as “|S|@|F|@|@|@|S|A|D|@|@|@”) are equivalent to:
- 2.12
- ctrl-S ctrl-@ ctrl-F ctrl-@ ctrl-@ ctrl-@
- 2.12
- ctrl-S ctrl-A ctrl-D ctrl-@ ctrl-@ ctrl-@
- 2.12
- which will have the same effect when read by Twin as the BASIC
- statements:
- 2.12
- VDU 19,0,5,0,0,0
- 2.12
- VDU 19,1,4,0,0,0
- 2.12
- mapping logical colour zero to physical colour five (cyan) and logical
- colour one to physical colour four (blue).
- 2.12
- As in the case of !BasicEdit, double clicking on the !Twin icon in a
- directory viewer will start up Twin without any file loaded, while
- installing !Twin on the icon bar via TinyDirs will allow dragging file
- icons to the !Twin icon on the icon bar, starting up Twin and loading
- the file.
- 2.12
- • Error signalling from within a machine code subroutine called from
- BASIC −Under BASIC V version 1.04, it is simple to signal an error
- condition from a machine code subroutine by setting the over-flow flag
- and loading register zero with a pointer to an error block before
- returning to BASIC.
- 2.12
- Consider these two, almost identical examples:
- 2.12
- The first assembles and calls a machine code subroutine that points
- register zero to an error block (see line 70) and then returns to BASIC
- with the overflow flag cleared (see line 80). This program terminates
- normally without an error:
- 2.12
- 10 REM > Example1
- 2.12
- 20
- 2.12
- 30 DIM code% 100
- 2.12
- 40 FOR pass% = 0 TO 3 STEP 3
- 2.12
- 50 P%=code%
- 2.12
- 60 [OPT pass%
- 2.12
- 70 ADR R0,errblk
- 2.12
- 80 BICS PC,R14,#&10000000
- 2.12
- 90 .errblk EQUD 99
- 2.12
- 100 EQUS “I am an error message”
- 2.12
- 110 EQUB 0
- 2.12
- 120 ]:NEXT
- 2.12
- 130 ON ERROR PROCerror
- 2.12
- 140 CALL code%
- 2.12
- 150 END
- 2.12
- 160 :
- 2.12
- 170 DEF PROCerror
- 2.12
- 180 PRINT “Nmbr=”; ERR
- 2.12
- 190 PRINT “Text=”; REPORT$
- 2.12
- 200 PRINT “Line=”; ERL
- 2.12
- 210 END
- 2.12
- 220 ENDPROC
- 2.12
- The second example is exactly the same except that it sets the overflow
- flag (see line 80) before returning to BASIC:
- 2.12
- 10 REM > Example2
- 2.12
- 20
- 2.12
- 30 DIM code% 100
- 2.12
- 40 FOR pass% = 0 TO 3 STEP 3
- 2.12
- 50 P%=code%
- 2.12
- 60 [OPT pass%
- 2.12
- 70 ADR R0,errblk
- 2.12
- 80 ORRS PC,R14,#&10000000
- 2.12
- 90 .errblk EQUD 99
- 2.12
- 100 EQUS “I am an error message”
- 2.12
- 110 EQUB 0
- 2.12
- 120 ]:NEXT
- 2.12
- 130 ON ERROR PROCerror
- 2.12
- 140 CALL code%
- 2.12
- 150 END
- 2.12
- 160 :
- 2.12
- 170 DEF PROCerror
- 2.12
- 180 PRINT “Nmbr=”; ERR
- 2.12
- 190 PRINT “Text=”; REPORT$
- 2.12
- 200 PRINT “Line=”; ERL
- 2.12
- 210 END
- 2.12
- 220 ENDPROC
- 2.12
- In this second case, an error occurs, which is trapped by the ON ERROR
- statement (see line 130) and results in the following lines being
- printed by PROCerror:
- 2.12
- Nmbr=99
- 2.12
- Text=I am an error message
- 2.12
- Line=140
- 2.12
- This use of the overflow flag can result in unexpected behaviour from
- some programs. For example, if the last SWI call in a machine code
- subroutine returns with the overflow flag set, indicating an error
- occurred during the execution of the SWI, and this flag is not reset
- before the subroutine returns to BASIC, then BASIC will take this as an
- error condition. Exactly what happens depends on the contents of
- register zero. If it points to a valid error block, then BASIC’s error
- trapping mechanism will function properly. Otherwise unpredictable
- errors (such as an address exception) will happen.
- 2.12
- • New SWI calls in RISC-OS − The following program can be used to list
- all the SWI calls available in OS. It basically works by calling the
- “OS_SWINumberToString” SWI for all possible SWI numbers and displaying
- the returned string. To speed things up it checks to see if the first
- SWI in a each chunk of 64 is valid. If not, it ignores the rest of the
- chunk. “Valid” in this case means that the SWI name is neither
- “OS_Undefined” nor “User”. SWI names beginning with “X” are also ignored
- as duplicates.
- 2.12
- 10 REM > SWIlist
- 2.12
- 20 :
- 2.12
- 30 buflen%=100
- 2.12
- 40 DIM buffer% buflen%
- 2.12
- 50 :
- 2.12
- 60 SYS “OS_SWINumberFromString”,,
- 2.12
- “XOS_SWINumberToString” TO S%
- 2.12
- 70 :
- 2.12
- 80 VDU 14
- 2.12
- 90 :
- 2.12
- 100 FOR chunk% = 0 TO &80000 STEP 64
- 2.12
- 110 SYS S%,chunk%,buffer%,buflen%
- 2.12
- TO ,swi$;V%
- 2.12
- 120 IF V%AND1 ELSE IF LEFT$(swi$,1)
- 2.12
- =“X” ELSE IF swi$ =“User” ELSE IF swi$<>“OS_Undefined” PROCchunk
- 2.12
- 130 NEXT
- 2.12
- 140 :
- 2.12
- 150 VDU15
- 2.12
- 160 :
- 2.12
- 170 END
- 2.12
- 180
- 2.12
- 190 DEFPROCchunk
- 2.12
- 200 FOR swi% = chunk% TO chunk%+63
- 2.12
- 210 SYS S%,swi%,buffer%,buflen% TO
- 2.12
- ,swi$;V%
- 2.12
- 220 IF V%AND1 ELSE IF LEFT$(swi$,1)
- 2.12
- =“X” ELSE IF swi$=“User” ELSE IF swi$<>“OS_Undefined” PRINT “SWI number
- ”;RIGHT$(“0000”+
- 2.12
- STR$~swi%,5);“ is ”;swi$
- 2.12
- 230 NEXT
- 2.12
- 240 ENDPROC
- 2.12
- If this program is run, a list of SWIs is generated. Those for the
- FPemulator and ColourTrans will only be listed if the relevant Relocat
- able Module is loaded when SWIlist is run. Those for RamFS will only be
- listed if the RAM disc is configured.
- 2.12
- The program was also run against Arthur 1.2 and by comparing the two
- listings, it was possible to identify those SWIs which appeared in the
- RISC-OS listing but not in that for Arthur. These are presumably new
- SWIs and are listed below.
- 2.12
- 00049 OS_ReadArgs
- 2.12
- 0004A OS_ReadRAMFsLimits
- 2.12
- 0004B OS_ClaimDeviceVector
- 2.12
- 0004C OS_ReleaseDeviceVector
- 2.12
- 0004D OS_DelinkApplication
- 2.12
- 0004E OS_RelinkApplication
- 2.12
- 0004F OS_HeapSort
- 2.12
- 00050 OS_ExitAndDie
- 2.12
- 00051 OS_ReadMemMapInfo
- 2.12
- 00052 OS_ReadMemMapEntries
- 2.12
- 00053 OS_SetMemMapEntries
- 2.12
- 00054 OS_AddCallBack
- 2.12
- 00055 OS_ReadDefaultHandler
- 2.12
- 00056 OS_SetECFOrigin
- 2.12
- 00057 OS_SerialOp
- 2.12
- 00058 OS_ReadSysInfo
- 2.12
- 00059 OS_Confirm
- 2.12
- 0005A OS_ChangedBox
- 2.12
- 0005B OS_CRC
- 2.12
- 0005C OS_ReadDynamicArea
- 2.12
- 0005D OS_PrintChar
- 2.12
- 000EB OS_ConvertFixedFileSize
- 2.12
- 000EC OS_ConvertFileSize
- 2.12
- 00240 IIC_Control
- 2.12
- 40098 Font_ReadColourTable
- 2.12
- 400DE Wimp_StartTask
- 2.12
- 400DF Wimp_ReportError
- 2.12
- 400E0 Wimp_GetWindowOutline
- 2.12
- 400E1 Wimp_PollIdle
- 2.12
- 400E2 Wimp_PlotIcon
- 2.12
- 400E3 Wimp_SetMode
- 2.12
- 400E4 Wimp_SetPalette
- 2.12
- 400E5 Wimp_ReadPalette
- 2.12
- 400E6 Wimp_SetColour
- 2.12
- 400E7 Wimp_SendMessage
- 2.12
- 400E8 Wimp_CreateSubMenu
- 2.12
- 400E9 Wimp_SpriteOp
- 2.12
- 400EA Wimp_BaseOfSprites
- 2.12
- 400EB Wimp_BlockCopy
- 2.12
- 400EC Wimp_SlotSize
- 2.12
- 400ED Wimp_ReadPixTrans
- 2.12
- 400EE Wimp_ClaimFreeMemory
- 2.12
- 400EF Wimp_CommandWindow
- 2.12
- 400F0 Wimp_TextColour
- 2.12
- 400F1 Wimp_TransferBlock
- 2.12
- 400F2 Wimp_ReadSysInfo
- 2.12
- 400F3 Wimp_SetFontColours
- 2.12
- 401C7 Sound_QInterface
- 2.12
- 40244 ADFS_Retries
- 2.12
- 40245 ADFS_DescribeDisc
- 2.12
- 40289 Podule_HardwareAddress
- 2.12
- 40540 FileCore_DiscOp
- 2.12
- 40541 FileCore_Create
- 2.12
- 40542 FileCore_Drives
- 2.12
- 40543 FileCore_FreeSpace
- 2.12
- 40544 FileCore_FloppyStructure
- 2.12
- 40545 FileCore_DescribeDisc
- 2.12
- 405C0 Shell_Create
- 2.12
- 405C1 Shell_Destroy
- 2.12
- 406C0 Hourglass_On
- 2.12
- 406C1 Hourglass_Off
- 2.12
- 406C2 Hourglass_Smash
- 2.12
- 406C3 Hourglass_Start
- 2.12
- 406C4 Hourglass_Percentage
- 2.12
- 406C5 Hourglass_LEDs
- 2.12
- 40700 Draw_ProcessPath
- 2.12
- 40701 Draw_ProcessPathFP
- 2.12
- 40702 Draw_Fill
- 2.12
- 40703 Draw_FillFP
- 2.12
- 40704 Draw_Stroke
- 2.12
- 40705 Draw_StrokeFP
- 2.12
- 40706 Draw_StrokePath
- 2.12
- 40707 Draw_StrokePathFP
- 2.12
- 40708 Draw_FlattenPath
- 2.12
- 40709 Draw_FlattenPathFP
- 2.12
- 4070A Draw_TransformPath
- 2.12
- 4070B Draw_TransformPathFP
- 2.12
- 40780 RamFS_DiscOp
- 2.12
- 40781 RamFS_NOP
- 2.12
- 40782 RamFS_Drives
- 2.12
- 40783 RamFS_FreeSpace
- 2.12
- 40784 RamFS_NOP
- 2.12
- 40785 RamFS_DescribeDisc
- 2.12
- 40740 ColourTrans_SelectTable
- 2.12
- 40741 ColourTrans_SelectGCOLTable
- 2.12
- 40742 ColourTrans_ReturnGCOL
- 2.12
- 40743 ColourTrans_SetGCOL
- 2.12
- 40744 ColourTrans_ReturnColourNumber
- 2.12
- 40745 ColourTrans_ReturnGCOLForMode
- 2.12
- 40746 ColourTrans_ReturnColourNumber
- 2.12
- ForMode
- 2.12
- 40747 ColourTrans_ReturnOppGCOL
- 2.12
- 40748 ColourTrans_SetOppGCOL
- 2.12
- 40749 ColourTrans_ReturnOppColour
- 2.12
- Number
- 2.12
- 4074A ColourTrans_ReturnOppGCOLFor
- 2.12
- Mode
- 2.12
- 4074B ColourTrans_ReturnOppColour
- 2.12
- NumberForMode
- 2.12
- 4074C ColourTrans_GCOLToColourNumber
- 2.12
- 4074D ColourTrans_ColourNumberToGCOL
- 2.12
- 4074E ColourTrans_ReturnFontColours
- 2.12
- 4074F ColourTrans_SetFontColours
- 2.12
- 40750 ColourTrans_InvalidateCache
- 2.12
- • Starting up TinyDirs automatically via the Desktop initialisation
- file − Archive 2.10 p 15, refers to the facility whereby the Desktop
- can be caused to run a file of initialisation commands at start-up time.
- One command that can be included in this file is a command to start up
- TinyDirs and automatically install high-use directories or applications
- on the icon bar.
- 2.12
- TinyDirs accepts multiple arguments on the command, separated by blanks.
- So, if you created two application directories for, say, the Basic
- Editor and Twin, you could include the following command in the Desktop
- startup file (assuming that the name of the disc where !TinyDirs,
- !BasicEdit and !Twin all reside is “SysDisc”):
- 2.12
- Run ADFS::SysDisc.$.!TinyDirs ADFS::SysDisc.$.!BasicEdit
- ADFS::SysDisc.$.!Twin
- 2.12
- Although two icons will be installed on the icon bar, only one copy of
- the TinyDirs application is started up. If two separate commands had
- been used:
- 2.12
- Run ADFS::SysDisc.$.!TinyDirs ADFS::SysDisc.$.!BasicEdit
- 2.12
- Run ADFS::SysDisc.$.!TinyDirs ADFS::SysDisc.$.!Twin
- 2.12
- then, although the icon bar would look exactly the same, with the same
- two icons installed, two copies of TinyDirs would have been started up,
- using twice the memory.
- 2.12
- It also seems safe to reduce the memory required by TinyDirs from 32k to
- 24k by altering the WimpSlot command in the !Run file for TinyDirs to
- 2.12
- WimpSlot -min 24k -max 24k
- 2.12
-
- • Acorn DTP fonts and print outs − P.J.Burn says that in order to
- print out Acorn DTP documents on an A310 you should select mode 11 as
- this releases 40k of memory. He also says that in order to increase the
- speed of the DTP screen update you should ensure that the font cache is
- 24k or larger.
- 3.1
- • Acorn DTP double spacing − Some readers have complained that when
- starting a new paragraph the Acorn DTP will always produce a double
- space. This can be solved by altering the space above setting of the
- paragraph’s style.
- 3.1
- • BASIC listings for !Edit − Mark Taylor says that it is easy to
- create an ASCII copy of a BASIC program. Just install !Edit in the
- normal way and then create a task window (this can be done by clicking
- the MENU button on the !Edit icon and selecting the ‘New task window’
- item from the ‘Create’ sub-menu). In this window start BASIC by typing
- *BASIC, then just LOAD the required program and LIST it. You can now
- save the contents of the window as a normal ASCII file.
- 3.1
- • C operating system calls (issue 2.12 p 36 cont) − Ray Loades-Bannon
- says that to access OSCLI commands from C you should use either:
- 3.1
- system (“screensave <pathname>””)
- 3.1
- or:
- 3.1
- {3 .1
- char *cptr;
- 3.1
- strcpy (cptr,“screensave ”);
- 3.1
- strcat(cptr,pathnameptr);
- 3.1
- system(cptr);
- 3.1
- }
- 3.1
- See the ‘Calling other programs from C’ chapter in the C manual for
- further details.
- 3.1
- • Debugger BreakPoints − When stepping though code, it is useful to
- run the code up to a breakpoint, and then remove the breakpoint and
- reposition it further ahead. Here are three function keys defin-itions
- suggested by Robin Terry to help you do this:
- 3.1
- *Key1 “BreakClr PC|MBreakSet ”
- 3.1
- *Key2 “Continue|M”
- 3.1
- *Key3 “MemoryI PC|M”
- 3.1
- The first breakpoint is set by using *BreakSet, but subsequent break
- points can be set by pressing <f1> and typing in the address. Then press
- <f2> should be pressed to execute the code , and <f3> should be pressed
- to look at where you’ve got to.
- 3.1
- • Droom under RISC-OS − A.H.Eagle says that when using Droom under
- RISC-OS the $.Data.Map program just caused the computer to freeze at
- line 820. This line reads 820 ?&CFF=L, and doesn’t seem to serve any
- purpose (perhaps it is a hang-over from the BBC version). He removed
- this line and the program now seems to work OK ( ... so far!).
- 3.1
- • Econet and the Desktop − A warning to all people using the desktop
- on the network: *commands are truncated to about 80 characters by the
- NetFiler, so for example, if you are several directories down and you
- rename a file, it could be renamed to something that you didn’t quite
- expect. More dangerous is the *Delete, in that you could want to *delete
- net#254:<pathname>.FredOld but your good copy is deleted when the
- command is truncated to *delete net#254:<pathname>.Fred. Truncation
- occurs due to the Acorn fileservers only being able to cope with data
- packets of around 80 characters (although the SJ Research fileserver can
- handle packets up to 128 characters). Another interesting feature is
- that if the *command is over 128 characters, no truncation occurs and a
- Net error is generated.
- 3.1
- • Filer_OpenDir revisited (issue 2.12 p 6 cont) − A simpler way of
- using system variables with the *Filer_OpenDir command has been
- suggested by one of the Archive BBS callers:
- 3.1
- *Set Alias$temp Filer_OpenDir <system variable>|MUnset Alias$temp|M
- 3.1
- *temp
- 3.1
- This sets up a system variable, called Alias$temp, which is used to
- expand the system variable and then delete itself once called.
- 3.1
- • Hard Disc Backup program on Careware 3 − Terry Bromilow says: “The
- program was originally written to run under Arthur OS using the D or L
- format discs. I put a new front end on it to make an application for
- RISC-OS and put in some lines to accommodate E format discs. It is now
- evident that the latter did not get tested.
- 3.1
- The BASIC program !Hdb_v200 in the !HDBackup directory should be amended
- as follows:-
- 3.1
- Interchange the adjacent lines 2140 and 2150 and put a new line between
- them: 2141 *DISMOUNT
- 3.1
- • Hard disc parking (2.11 p 13 cont) − Martyn Lovell says that
- although *bye from a non-adfs filing system won’t park an adfs hard disc
- *adfs:bye will (SCSI hard drive owners should use *scsi:bye).
- 3.1
- • Keyboard condensation − One reader has noted that there is no
- lacquer on the top surface of the keyboard PCB. It is not unusual for
- people to blow dust, etc away from the keyboard, however, this will
- cause condensation onto the PCB and cause some minor corrosion. This can
- easily be wiped away.
- 3.1
- • Limited ADFS memory error − The ADFS module will remember the
- catalogues of any discs it sees (e.g. those that it *mounts). However,
- it is limited to the amount of memory it can allocate to ‘remembering’
- these catalogues. This is governed by the *Configure ADFSDirCache
- command. When the ADFS directory cache is full, the oldest catalogues
- should be discarded as new ones are encountered. Unfortunately, the
- module has a bug, which prevents it from doing this properly. What makes
- this bug so serious is that it can cause the dreaded ‘Filecore in use’
- error, which cannot be rectified, thereby making it impossible for you
- to save any data, etc that you might have been working on. (If Phil
- Colmer at Acorn, or whoever, could give us a clue on this one, that
- would be useful. Ed.)
- 3.1
- • Naming discs − You may already realise that you should not give
- discs the same name (using the *NameDisc command) as RISC-OS will only
- access one of the discs i.e. the one most recently *MOUNTed. David
- Leckie found that this also holds up for fileservers discs. He had two
- separate fileservers 254 and 245 both with hard disks called FS, as you
- can imagine this cause much confusion!
- 3.1
- • Obey module bug − “Speak and I shall obey ... or maybe not.” There
- is a bug in the obey module supplied in the ROMS (v0.07). If an
- environment variable is set to a string ending with the tilde character
- (~) then the string will magically acquire a few extra characters, or
- worse.
- 3.1
- Using Edit, create a new obey file containing the command:
- 3.1
- Set testvariable abcdef~
- 3.1
- or similar, ensuring that the <return> key is pressed immediately after
- the tilde (~). Save the file to a directory window and then double click
- on the file icon to run the file. This will create the variable
- “testvariable”. Press <f12> to get a system prompt and type
- 3.1
- Show testvariable
- 3.1
- to display the variable’s value. It will show some-thing like
- 3.1
- testvariable : abcdef~~&’
- 3.1
- i.e. it has acquired a few extra characters. (N.B. I’ve been unable to
- repeat (see below) this so the characters may be wrong − but I do know
- where they originate from so this is an educated guess)
- 3.1
- Worse is that depending on the exact situation when the file is run an
- “Abort on Data Transfer” error may occur (!!) and the variable will not
- have been created.
- 3.1
- The problem is easily solved − don’t try and create a string ending with
- ~ in an obey file. If necessary a space can be placed after the tilde
- (~) and this will be enough to prevent the error. Clifford Hoggarth
- 3.1
- • RAM disc size − To read the size of a RAM disc, not *configured but
- set from within the desktop task manager you should use:
- 3.1
- SYS “OS_ReadRAMFsLimits” TO A,B
- 3.1
- (B-A)/1024 gives the size of the the RAM disc in kbytes.
- 3.1
- To check if a *configured ram disc exists then try:
- 3.1
- SYS “OS_Byte”,161,144 To ,,ramdiscsize%
- 3.1
- The variable ramdiscsize% indicates the number of RAM pages to be
- allocated to the RAM disc e.g. 8k blocks for a 300 series.
- 3.1
- • Recursive directory copying − If you copy a directory into itself
- (as Clive Payne did with his library directory in issue 2.11 p 15) the
- computer will get into an infinite loop of copying directories inside of
- themselves. To stop the computer from using all your disc space up, you
- can press the escape key. The error can then be rectified by going into
- the parent directory and deleting its children i.e. you don’t have to
- reformat your disc!
- 3.1
- • ROM Speed Up − In several Archive issues (e.g. issue 2.11 p 8) we
- have pointed out that the speed at which the Archimedes runs its ROMs
- can be increased. Martyn Lovell advises us that this can cause RISC-OS
- to crash and so is not very reliable.
- 3.1
- • Squish − I am very pleased with Mike Harrison’s “SQUISH” program (on
- Careware disc 2). It enables me to write meaningful, well laid out
- programs and then to gain processing speed following compression.
- Brilliant!
- 3.1
- I have, however, discovered a bug. This occurs whenever you use a
- statement such as:
- 3.1
- IF a=b c=d
- 3.1
- What actually happens is that it compresses to:
- 3.1
- IF a=bc=d
- 3.1
- The program then fails “Unknown or missing variable”. To circumvent
- this, the full construct IF ... THEN ... should be used. B.R.Wilson,
- Solihull
- 3.1
- • Uncluttering catalogues (2.11 p 13 cont) − If you close down an
- application using the ADJUST button the filer will (re)open the viewer
- containing the file you last accessed.
- 3.1
- • Using Sys$DateFormat (issue 2.12 p 19 cont) − Mark Taylor (along
- with several others) has answered a question which appeared in last
- month’s Help!!! column.
- 3.1
- The system variable Sys$DateFormat is only used by the SWI call
- OS_ConvertStandardDate AndTime and not by the BASIC pseudo variable
- TIME$ (see pp 400-402 of the old PRM for further details).
- 3.1
- 10 REM >$.Convert
- 3.1
- 20 REM a program to convert TIME &
- 3.1
- DATE in to a string,
- 3.1
- 30 REM in the format of the system
- 3.1
- variable Sys$DateFormat
- 3.1
- 40 :
- 3.1
- 50 REM some workspace for the time
- 3.1
- & date SYS call
- 3.1
- 60 DIM block% 100
- 3.1
- 70 :
- 3.1
- 80 *Set Sys$DateFormat
- 3.1
- %yr%mn%dy%24%mi%se
- 3.1
- 90 string$=FNtime_date
- 3.1
- 100 PRINT “The time is
- 3.1
- (YYMMDDHHMMSS) = “;string$
- 3.1
- 110 END
- 3.1
- 120 :
- 3.1
- 130 DEFFNtime_date
- 3.1
- 140 REM first get 5 byte time code
- 3.1
- 150 REM using OS_Word &0E,3
- 3.1
- 160 SYS “OS_Word”,&0E,3 TO r0,r1
- 3.1
- 170 :
- 3.1
- 180 REM get date & time string
- 3.1
- 190 SYS “OS_ConvertStandardDate
- 3.1
- AndTime“,block%,block%+50,49
- 3.1
- TO r0,r1,r2
- 3.1
- 200 :
- 3.1
- 210 REM extract string from data
- 3.1
- block
- 3.1
- 220 date$=“”
- 3.1
- 230 FOR x%=0 TO (12-r2)
- 3.1
- 240 data$+=CHR$(r0?x%)
- 3.1
- 250 NEXT x%
- 3.1
- 260 =date$
- 3.1
-
- 3.1
- • VIDC warning − Someone (Philip Green, I think) sent in a warning to
- say that you should NEVER connect and disconnect video and monitor
- connections with the computer switched on for fear of damaging the VIDC.
- 3.1
- I have been doing just that for two years now on several different
- Archimedes computers and have NEVER had any problems, so I wasn’t going
- to bother printing the warning − it seemed a little over cautious. This
- morning I connected up a brand new monitor, live as usual, and got a
- funny picture. “Drat”, says I, “It’s a DOA and will have to go back to
- the distributor from whence it came!” However, further fiddling and
- switching of monitors (live) between computers revealed that the
- computer was at fault − there were funny dark vertical lines down the
- display and the sound was a bit croaky (sound comes through VIDC). This
- is what you call learning the hard way or “Pride comes before a fall” or
- something. Anyway, don’t say we didn’t warn you! Ed.
- 3.1
- • Hints & Tips printing error, Archive 2.12 p 7. The IF statement at
- line 750 is incorrect − a 7 has been cut off by the editor − ‘key% < 5’
- should read ‘key% <57’.
-
- • *RMTidy and ADFS − If you perform a *RMTidy any discs will be
- dismounted and any directory settings (*DIR) will be lost. This is
- because this function re-initialises all the modules including the
- FileCore%ADFS and ADFS modules.
- 3.2
- • Acorn DTP − if you want to import text that has a return at the end
- of each line e.g. spooled BASIC programs, poetry, songs, etc then if you
- import them directly Acorn DTP will ignore the returns and give you a
- continuous block of text. There is a way around this problem:
- 3.2
- 1) In Acorn DTP define a new style say PROGRAM or SONG, etc
- 3.2
- 2) Set the space above parameter to 0
- 3.2
- 3) Load your text into !Edit
- 3.2
- 4) Select the find window of the !Edit menu i.e. press <f4>
- 3.2
- 5) Select the ‘magic characters’ option
- 3.2
- 6) Type: \x0A into the find box and /x0a/x0a in the replace box
- 3.2
- 7) Select the GO option and then select the ‘replace end of file’ option
- 3.2
- The effect is that each line is treated as a new paragraph with its
- style defined as PROGRAM.
- 3.2
- • Alphabase RISC-OS compatible? I read Gerald Fitton’s tale of woe
- (Archive 2.12 p43) just two days after encountering exactly the same
- problem myself with Alphabase. The ‘Readme’ file on the program disc
- states that hard disc installation can be done in ‘the usual RISC-OS
- manner’ rather that using the ‘Install’ file. It seems to me that it
- must be done in the former way! Apart from messing up the configure
- settings as Gerald describes, ‘Install’ fails to copy the !Alphabase
- application directory to drive 4 (it can’t, since the *COPY command
- issued at line 160 has no R option). Remedying this doesn’t help: the
- program still crashes with a ‘can’t find’ message when you attempt to
- boot via the Library. After wasting many hours in debugging attempts, I
- scrubbed the lot and simply copied !Alphabase to :4.$, whence the
- program is run without problems by clicking on the desktop. Inciden
- tally, again contrary to what is said on the ‘Readme’ file, the floppy
- disc stubbornly refused to boot on Shift-Break. Bill Templeton.
- 3.2
- • Archimedes Fans − Ray Maidstone of Norwich has been investigating
- Archimedes fans (the cooling kind). He says that if you plug in any
- extensions on to your Archimedes e.g. backplanes, RAM upgrades, etc then
- you really should be using a fan. This keeps the temperature of the
- Archimedes at an acceptable level, thereby extending the life of the
- components.
- 3.2
- • Binary-Chop − Michael Sawle sent in this routine which can be used
- for locating an item in an array − one of the beauties of this routine
- being that it only needs enough characters to uniquely identify the
- string being searched for. The routine requires data to be stored
- alphabetically in a matrix M$(1),M$(2),...,M(NR%) where NR% is the
- number of records currently stored. The routine returns the matrix
- element number of the desired record (or nearest available).
- 3.2
- DEFFNbinarychop(find$)
- 3.2
- LOCAL A%,B%,R%
- 3.2
- where=0 : A%=0 : B%=NR%
- 3.2
- REPEAT
- 3.2
- R%=INT((A%+B%)/2)
- 3.2
- IF M$(R%)>find$ THEN
- 3.2
- B%=R%
- 3.2
- ELSE
- 3.2
- IF M$(R%)<find$ THEN A%=R%
- 3.2
- ELSE
- 3.2
- where=R%
- 3.2
- ENDIF
- 3.2
- ENDIF
- 3.2
- UNTIL where>0 OR B%-A%=1
- 3.2
- IF where=0 THEN where=A%+1
- 3.2
- =where
- 3.2
- In fact this routine should be called a binary search routine. It chops
- the list of records in two and then checks which half of the data set
- the search string should appear. It then chops this half in two and so
- on until finds the string or it realises the string does not exist. This
- means that the computer can significantly reduce the number of checks it
- has to make before reaching a result e.g. if you have 32768 (i.e. 2^15)
- records then the computer will make a maximum of 15 checks. The price
- that must be paid for this efficiency is that the data set must be
- sorted in some recognisable order e.g. alphabetically, numerically,
- ASCII, etc. The best versions of this technique are usually recursive.
- (Perhaps someone might like to have a go at writing one?)
- 3.2
- • Colour TV’s as monitors − Several times in Hints & Tips, connection
- of the Archimedes to colour TV’s has been mentioned. I have succeeded in
- doing just this. In Archive 2.7 p11, Oliver Cornes says that plugging
- the Archimedes’ SCART into a video recorder doesn’t work − this is
- because a VCR only deals with composite signals, not RGB. However, if
- your TV has a SCART socket, and many new ones do, then connection may
- well be possible direct to the TV. You will have to tell the TV to use
- RGB input, not the composite (it only uses composite then for timing).
- There may be (indeed, it would be odd if there wasn’t) a way of doing
- this with the TV controls. My TV has two sockets and if you tell it to
- use socket 0 it uses socket one with RGB.
- 3.2
- However, I didn’t find this out until I found out that one of the pins
- on the SCART standard is for just this type of use − pin 16 must be
- between +1V and +3V with respect to pin 18 (i.e. connect a 1.5V battery
- between them − the −ve end to pin 18, the +ve end to pin 16). The TV
- then automatically switches to SCART RGB input. Note that this overrides
- any channel selection made, so you should put a switch in line so you
- can switch the signal off, otherwise you can’t watch TV. Connection to
- the SCART plug is often maligned as difficult, but it is only a case of
- knowing how to do it. The proper way is to remove the pin you wish to
- make connection to, connect it up and then put it back. The pins have
- barbs to prevent them from falling out, so use a pair of narrow pliers
- to squeeze the barb back and push the pin out through the rear of the
- plug. Also make sure that you re-insert the pin the right way round −
- just copy the other pins. They only go in properly one way round anyway.
- Kevin Quinn
- 3.2
- • FileCore in use remedy − If the Archimedes ‘sees’ too many ADFS
- directories then a ‘Filecore in use’ error may occur and you will be
- unable to save any data in your machine. You can overcome this by typing
- the following four lines after the error has occurred:
- 3.2
- *RmReInit FileCore (this will fail giving a Bad number error)
- 3.2
- *RmReInit FileCore
- 3.2
- *RmReInit ADFS
- 3.2
- *RmReInit HardDisc (A300’s and A3000’s only)
- 3.2
- • MaxGammon update − The MaxGammon game on Careware 2 cannot be played
- in mode 15. In order to over come this you should:
- 3.2
- 1) Load in the BASIC !RunImage file in the !MaxGammon directory.
- 3.2
- 2) Type the following:
- 3.2
- 10840colour%=FNmg_Colour(mg_red
- 3.2
- _player%)
- 3.2
- 11230tc%=mgc_grey_point%
- 3.2
- 3) Save the program.
- 3.2
- • Oak MS-DOS SCSI as Drive D − I use the PC emulator occasionally for
- my work. It therefore did not take very long to use up all 10M of the
- MS-DOS drive C partition on my 47M SCSI drive. The obvious thing to do
- would be to create another MS-DOS partition for drive D. However on the
- version of the PC emulator that I am using (Emulate121) the Archimedes
- hard discs 4 and 5 are mapped to MS-DOS discs C and D. Therefore drive C
- and D cannot both exist on the same hard disc (on the emulator) and two
- hard disc drives are required for two partitions.
- 3.2
- On the OAK SCSIFS each winchester drive has the following information:-
- 3.2
- a) filing system drive number (e.g. :4 or :5)
- 3.2
- b) SCSI hardware address (each device on the SCSI bus has a unique
- address)
- 3.2
- c) logical unit number (SCSI ‘software’ address)
- 3.2
- If you are lucky enough to have an OAK SCSI (::SCSIDisk4) with an MS-DOS
- partition (Drive _C) then here’s how to create MS-DOS drive D.
- 3.2
- 1. Run ‘SCSIForm’
- 3.2
- 2. Note that drive :4 is SCSI ID = 0, LUN = 0
- 3.2
- 3. Add drive 5 with SCSI with SCSI ID = 0, LUN = 0 (same as drive :4)
- 3.2
- 4. Exit SCSIForm and enter the desktop. There should be an additional
- hard disc icon ‘SCSI 5’
- 3.2
- 5. Start up the PC emulator (version 1.20 or greater?)
- 3.2
- 6. Type FDISK. An extra option should appear (5 − select next fixed disc
- drive). Select this and the disc drive should now become number 2. Then
- select option 1 ‘Create DOS Partition’
- 3.2
- 7. Type Format D:
- 3.2
- 8. Type CHKDSK D: (this checks partition is OK)
- 3.2
- 9. When using the desktop always us SCSIFS::SCSIDisc4. Ignore disc 5
- 3.2
- Ralph Barrett
- 3.2
- (We have not had a chance to try this out yet, so you follow these
- suggestions at your own peril. Ed)
- 3.2
- • Recursive directory move bug − one reader noted that while in the
- desktop, if you moved a directory into itself (by holding the shift
- button down while copying) the files in the directory will be moved
- further and further down a directory tree until your whole disc has been
- filled with directories! The problem with this bug is that you can’t
- move your files back to their original position because the disc is
- already full. You must copy the other files onto another disc and then
- remove the offending directory.
- 3.2
- • To scroll or not to scroll? The strange behaviour mentioned in the
- BASIC V Forum (Archive 3.1 p36) is actually caused by the *Configure
- Scroll or *Configure NoScroll setting. This setting allows us to control
- the behaviour of the ends of lines. *Configure Scroll should be used for
- compatibility with earlier machines. The RISC-OS desktop, however, has a
- habit of countermanding the configured values and in this case it
- decides that it prefers NoScroll. If you have a program which relies on
- the behaviour of the ends of lines, then you can execute VDU 23,16,&FE,1
- || to temporarily obtain the Scroll option, or VDU 23,16,&FE,0 || to
- obtain NoScroll behaviour.
- 3.2
-
- • AutoCAD to !Draw conversion − The RISC-OS application !Draw can
- accept input from a DXF (Drawing Interchange Format) file. These files
- can be produced by packages such as ‘AutoSketch’ and ‘AutoCAD’. To get a
- file from a IBM PC running the ‘AutoCAD’ package to !Draw the following
- procedure should be used.
- On the IBM PC:
- 1. Do a ‘DXFOUT’ command from within Auto-CAD to output the current
- file in DXF format.
- 2. This file should be copied to a IBM format 5.25“ or 3.5” disc.
- On the Archimedes:
- 3. Start the PC emulator on the Archimedes.
- 3.3
- 4. Perform a ‘putfile MS_DOS_Name.dxf ADFS_Name’ from within the
- emulator to transfer the file from MS-DOS to RISC-OS.
- 3.3
- 5. From within RISC-OS set the file type of your file to &DEA
- (*SETTYPE ADFSName DEA).
- 3.3
- 6. Start !Draw and drag the DXF file to its icon or into a !Draw
- window.
- 3.3
- !Draw will ask you a question about the ‘units’ (scale) before redrawing
- the image in the window. This may require some thought to get the
- required effect. !Draw appears to get confused with some entries in DXF
- files and refuse to load the file. Deleting the text in the original
- picture may cure the problem. AutoSketch on the Archimedes can also
- produce DXF type files for input into !Draw.
- 3.3
- • ‘C’ Operating System calls (cont’d) − The following example program
- shows how system commands can be invoked from a C-program. It was tested
- under Acorn ANSI C version 2. The use of the function ‘system’ is part
- of the proposed ANSI standard for C, although its exact implement-ation
- is left up to the individual versions of C. The Acorn ‘ANSI C’ library
- function ‘system’ returns a zero value if the command executes success
- fully and non-zero if it fails. Problems will occur if the command being
- executed over-writes the C-prog-ram (for example if the command starts
- up a second C-program), but in the example both commands are ‘built-in’
- and therefore do not overwrite the invok-ing program. In theory, the
- *RMLoad command fails if there is not enough RMA, but in testing the
- example, it worked even when the free RMA was configured to 0k.
- 3.3
- /* > c.systest */
- 3.3
- #include <stdlib.h> /* General
- 3.3
- utilities */
- 3.3
- #include <stdio.h> /* Input/output
- 3.3
- */
- 3.3
- int main ()
- 3.3
- {3 .3
- static char rmload[]=“rmload
- 3.3
- system:modules.memalloc“;
- 3.3
- static char screensave[]=
- 3.3
- “screensave screenfile”;
- 3.3
- int result1,result2;
- 3.3
- result1=system(rmload);
- 3.3
- result2=system(screensave);
- 3.3
- printf(“Result1=%d, Result2=%d\n”
- 3.3
- ,result1,result2);
- 3.3
- return(0);
- 3.3
- }
- 3.3
- • Dead modules − If you install a module which claims a vector and
- then press the reset button, something very strange happens when you
- want to *RMKill the module. Because the vector can’t be released, the
- module isn’t killed properly. To let you know about this, RISC-OS puts
- the dummy address DEADDEAD where you would expect the workspace address:
- 3.3
- *rmkill printkill
- 3.3
- Bad vector release
- 3.3
- *modules
- 3.3
- No Position Workspace Name
- 3.3
- 1 0380873C 00000000 UtilityModule
- 3.3
- 2 0381FB94 01800014 FileSwitch
- 3.3
- ...
- 3.3
- 27 0387EA48 00000000 SpriteUtils
- 3.3
- 28 01813BC4 DEADDEAD PrintKey
- 3.3
- etc
- 3.3
- • Definitive modem connections? The following connections work with
- ArcTerm601, Hearsay and the Archive BBS for the WS3000 and SM2400
- modems:
- 3.3
- Arc RX (2) to Modem TX (3)
- 3.3
- Arc TX (3) to Modem RX (2)
- 3.3
- Arc GND (5) to Modem GND (7, not 1)
- 3.3
- Arc RI (9) to Modem DCD (8)
- 3.3
- Arc CTS (8), DCD (1), and DTR(4) to Modem DTR (20)
- 3.3
- Arc RTS (7) to Modem RTS (4)
- 3.3
- Arc DSR (6) to Modem CTS (5)
- 3.3
- • Digitisers? Who needs one, anyway ? We recently faced the problem of
- how to get the company logo into a DRAW file, and came up with a
- solution which may be useful to other people. It is most applicable to
- images bounded largely by straight lines.
- 3.3
- First take the image and enlarge it repeatedly using a photocopier until
- it fills more than a third of the screen of the monitor you are using.
- Then make one more enlargement, onto the transparent acetate sheets used
- for overhead projector foils. If you do not have a copier you will find
- most high street copier services can do all this for you, probably for
- less than a pound. Our copier will enlarge to 145% at a time.
- 3.3
- Now cut out the piece of acetate showing the image, and put it on your
- monitor screen. You will find it sticks most satisfyingly. Enter DRAW
- and register the coordinates of the corners of the image. You may want
- to have a grid on the screen to ensure you line up the acetate image
- with the edges of the screen. You can also check alignment by reading
- the coordinates of points which should be the same distance from an edge
- of the screen and adjusting them as necessary.
- 3.3
- We found this was much easier than transcribing even simple shapes by
- eye, as it was hard to get the proportions right that way. It was also
- much quicker than drawing a grid and transcribing coordinates from that.
- Laurie van Someren, Aleph One Ltd
- 3.3
- • Interdictor Flight Recorder! − It is possible to fly the plane on
- your own, run or even record a demo flight. This can be done by altering
- the !Run file in the !Interdictor directory. On the bottom line of this
- directory is the ‘fly’ command. Its permutations are as follows:
- 3.3
- fly (just fly the plane as usual)
- 3.3
- fly playback <filename> (replay a demo flight from a file)
- 3.3
- fly record <filename> (record the flight to a file)
- 3.3
- If you want an example of how this works, you can look at the !RunDemo
- file in the Interdictor direct-ory. This file runs the demo file call
- DemoFlight.
- 3.3
- • Low Batteries? One reader noticed that after 15 months, his
- Archimedes’ configuration settings began to change inexplicably e.g. the
- loss of all disc drive icons in the desktop. Eventually, after various
- problems (e.g. the Beebug Serial Link buffer setting kept changing) the
- whole system finally froze. However, the problem was fully resolved by
- replac-ing the batteries. So be warned. (Acorn recommend replacement
- every 12 months.)
- 3.3
- • MS-DOS Hard Disc Partitions − The easiest way of getting two hard
- disc partitions for the PC Emulator is to get version 1.33, which can be
- downloaded from the Archive BBS or SID. Alternatively send us a donation
- to our charity pot along with an 800k formatted 3.5“ disc.
- 3.3
- • Multi-tasking First Word Plus? If you rename the !Run file in the
- !1stWord+ directory to !Boot then First Word Plus becomes multitasking.
- Unfortunately, you cannot reach the disc, palette or task icons.
- 3.3
- • Noisy Fans 1 − If you have a fan in your Archim-edes, you should not
- disconnect it. The reason for this is that the fan will then be blocking
- up the air vent and so the computer’s PSU will operate at too high a
- temperature. If you want to reduce the noise of the fan, you should
- either completely remove the fan or refer to the following hint.
- 3.3
- • Noisy Fans 2 − I have looked at the physical design of the Archi
- medes PSU and done a few temperature measurements and it is my belief
- that you ought to have a fan fitted and working. So, what can you do to
- reduce the annoying noise of the fans? Well, we have several Archimidi
- here and the noise drove us to distraction so, being hardware oriented,
- I looked at the infernal (sic) fan. Yes, I have found a way of shutting
- it up, but before you get too excited, allow me to explain a little
- more.
- 3.3
- These fans are most certainly not your average Scalectrix car 12volt
- motor with a set of plastic blades stuck on the front! In fact, we
- couldn’t have wished for a better headache − these fans (of which we’ve
- even found two different manufacturers so far) consist of a transistor
- circuit driving a coil assembly that is alternately fluxing a permanent
- magnet within the plastic rotor. At the same time, the rotor is having
- its rotational speed monitored by a hall effect switch, busily counting
- the revolutions! How are we going to slow that down? The answer we came
- up with was a small transistor circuit of our own that takes the 12v
- D.C. input and feeds to the fan a suitably pulsed supply that allows the
- fan to start but not reach full speed. Cunning, eh?!
- 3.3
- Yes, we had to make two slightly different versions of our circuit, as
- the fans were not the same electrically. We’ll let you know how they get
- on as we’re still testing them, but there no problems so far. Ray
- Maidstone.
- 3.3
- If you want more technical info, drop Ray a line via the Archive office.
- Ed.
- 3.3
- • Presenter II Stacked Bar option − If one of the data sets (columns)
- contains several NULL (0 or zero) entries then on the display, some of
- the stack-ed bar may be displaced vertically downwards. This is easily
- corrected by replacing the NULL entry with a very small value. E.g., if
- the data maximum is 100 then a value of 0.1 or 0.05 will do the trick.
- 3.3
- • Second floppy disk drive − If you want a second disc drive and don’t
- need the a new front fascia for two drives, you can install an NEC 1036A
- into the Archimedes, which can be obtained for around £50.
- 3.3
- You will also need to buy some ribbon cable, power leads and extra plugs
- for the leads. Don’t forget to set the drive to operate as drive 1 and
- to *Configure Floppies 2 on the Archimedes.
- 3.3
-
- • 80k of RMA and rising! RMA stands for Relocatable Module Area. In
- English, this is the area of memory which some parts of the operating
- system (modules) use as work space. This is why when you first
- initialise your computer you will find that your RMA takes over 80k of
- memory. For those of you who are curious, here is a guide to the memory
- each module claims on power up:
- 3.04
- Module Workspace (bytes)
- 3.04
- FileSwitch 2400
- 3.04
- Desktop 528
- 3.04
- SystemDevices 288
- 3.04
- BBCEconet 80
- 3.04
- InternationalKeyboard 528
- 3.04
- Debugger 448
- 3.04
- SoundChannels 8464
- 3.04
- Sound Scheduler 8208
- 3.04
- WaveSynth 1760
- 3.04
- StringLib 8576
- 3.04
- Perussion 8800
- 3.04
- SpriteExtend 1296
- 3.04
- Draw 272
- 3.04
- FontManager 2832
- 3.04
- WindowManager 7920
- 3.04
- NetStatus 16
- 3.04
- Podule 208
- 3.04
- ADFS 656
- 3.04
- FileCore%ADFS 12,464
- 3.04
- HourGlass 1952
- 3.04
- TaskManager 3760
- 3.04
- PaletteUtil 3632
- 3.04
- Filer 4993
- 3.04
- ADFSFiler 2336
- 3.04
- ShellCLI 1872
- 3.04
- Total 84308
- 3.04
- RMA is also used to contain WIMP sprites (especially application icons
- stored in their !Sprite files) and relocatable modules, which add extra
- facilities to the ROM based operating system e.g. 65Tube provides BBC
- emulation. This means that as the Archimedes ‘sees’ and loads more
- applications/modules the memory acquired by the RMA grows and can quite
- easily reach 300k plus!
- 3.04
- Since there are several uses for the RMA, there are several ways of
- reducing the memory it requires:
- 3.04
- a) Remove individual modules using the *RMKill command e.g. *RMKill
- Percussion − this will only temporarily remove the facilities provided
- by a module.
- 3.04
- b) Unplug unwanted modules using the *RMUnplug command e.g. *RMUnplug
- BBCEconet − this will permanently remove the facilities provided by an
- operating system ROM module − so if you don’t have Econet or don’t use
- the Debugger then you can unplug the relevant modules and release their
- workspace. Note, you can reinvoke the facilities of a module by using
- the *RMReInit command.
- 3.04
- c) Use the following BASIC V program to clear the RMA sprite area:
- 3.04
- program segment missing
- 3.04
- d) If you have finished processing and saved all your work you could
- press <ctrl-break> but this is rather drastic.
- 3.04
- • ArcTerm update − Hugo Fiennes has updated ArcTerm v6.01 so that it
- works properly with the CET and CET+ standards. An upgrade can be
- obtained direct from Hugo Fiennes free of charge.
- 3.04
- • Arthur desktop − If any of you have changed over to RISC-OS but are
- pining for the old Arthur desktop (!) then see if you can get hold of a
- copy of Brainsoft’s Disk Transfer program. This provides a modified ram
- copy of the desktop with extra features added. You will then be able to
- access your old desktop diaries, etc. Dave Woods.
- 3.04
- • ASCII BASIC programs − BASIC V can load and renumber an untokenised
- text file with the *BASIC -load <filename> command (the same applies
- with the -chain option). Thus you don’t really need a BASIC to ASCII
- convertor; you could just keep all your BASIC programs in ASCII, at
- least while you develop them, and still be able to edit them using a
- text editor, e.g. TWIN or !Edit.
- 3.04
- • Auto-booting applications − If you want a RISC-OS application to load
- or run as soon as the disc is inserted then you should modify the !Boot
- file in the application to execute the !Run file i.e. add the command
- *Run <Obey$Dir>.!Run in the !Boot file. This technique could be used,
- for example, to automatically load the BASIC Editor when a development
- disc is inserted.
- 3.04
- • Break key action − You can set the action of the <break> key using the
- *FX 247,<n> command. The value byte <n> alters <break> and modifiers of
- it as follows:
- 3.04
- Bits Key Combination
- 3.04
- 0.1 <break>
- 3.04
- 2.3 <shift-break>
- 3.04
- 4.5 <ctrl-break>
- 3.04
- 6.7 <ctrl-shift-break>
- 3.04
- Each two bit number may take on one of these values:
- 3.04
- Value Effect
- 3.04
- 00 Act as <reset> key
- 3.04
- 01 Act as <escape> key
- 3.04
- 10 No effect
- 3.04
- 11 Undefined
- 3.04
- The default is *FX 247,1 which makes <break> act as if it were <escape>
- and all other combinations cause a reset.
- 3.04
- • Desktop grey scale? If you modify colours 0 or 7 (white or black)
- using the desktop palette utility then the palette application will
- attempt to interpolate the colours in between i.e. colours 1-6. Try it
- and see!
- 3.04
- • Don’t move your mouse! Whilst waiting for a program to complete a
- lengthy process (e.g. when the hourglass is on) it is best not to move
- the mouse as keeping track of the mouse movements takes up processor
- time.
- 3.04
- • Faster BASIC SWI’s − When using the SYS command within a BASIC V
- program, it is quicker to use a number instead of a string. e.g. SYS6
- instead of SYS “OS_Byte”. However, the best way to obtain the number
- values is to use a BASIC variable and “OS_SWINumberFromString”. This
- increases speed while maintaining machine independence and readability.
- For example:
- 3.04
- program segment missing
- 3.04
- • Insert/overwrite with !Edit − It is possible to toggle between insert
- and overwrite mode in Edit by pressing <shift-f1>.
- 3.04
- • Mouse step − you can set the sensitivity of your mouse by using the
- BASIC V MOUSE STEP command e.g. MOUSE STEP 4 means that the pointer will
- move 4 O.S. pixels for every mouse pulse. The ‘sensitivity parameter’
- can take a zero or even a negative value, so that you can freeze the
- mouse or even invert it!
- 3.04
- • Multiple entry PROC’s and FNs − You can have multiple entries to
- procedures and functions, although it may not be good programming style.
- This is because lines beginning with DEF are not executed, so you can
- have further DEFs within the body of a procedure/function, and enter at
- these points with an appropriate call − this might be particularly
- useful to have a first entry, set up some default parameters, and then
- have entry to override them:
- 3.04
- program segment missing
- 3.04
- • O.S. case sensitivity − Contrary to what has been said in the past,
- the operating system is almost entirely case-insensitive, unlike BASIC,
- and although the case of filenames and variable names is preserved it is
- not significant. Quotes are also generally unnecessary except when
- including a space in a parameter.
- 3.04
- • Removing recursive directories (cont’d) − If you accidentally copy a
- directory into itself then the best way to tidy the disc up is to create
- a RAM disc and move the unwanted files into it (you can move a file by
- dragging it into the filer window while holding the <shift> button
- down).
- 3.04
- • Time for function keys − Function key strings are just treated as OS
- variables called Key$<n>, where <n> is the key number. This means that
- all the commands relate to system variables can be used with function
- keys e.g. *ShowKey$ will display key definitions. *SetMacro Key$0
- <Sys$Time> will make <f0> display the time and so on.
- 3.04
- • Using *GOS − You can use the *GOS command from the desktop to prevent
- returning if you accidentally hit the <return> key. Once you have
- finished typing your *commands you can use the •Quit command to go back
- to the desktop.
- 3.04
-
- • Window resizing bugs/errors − The bug in Interactive help Archive
- 2.11 page 8 is not a bug but a result of !Help setting a window work
- area extent in less than a multiple of four. The program is in C so I
- can’t edit it. I discovered this when writing my own software. When a
- window was stretched to its full extent it would not grow smaller in the
- y direction until you moved in to the left. R.D.
-
- • *WIPE with mouse − In BASIC, (or at the operating system prompt for
- that matter. Ed.) if you have the pointer ON (*POINTER) and do *WIPE *,
- a mouse pointer appears enabling you to use <se-lect> to delete the file
- and <menu> or <adjust> to keep the file.
- 3.5
- • Alerion cheat − For those who have the RISC-OS version of Alerion,
- you can select the wave you wish to play by pressing the letters <A> to
- <O> while on the title screen.
- 3.5
- • BASIC Editor bugs − There is a bug or two in the Basic Editor v1.00
- that comes on the Applications Disc 2. If you exactly fill the first
- line so that the cursor jumps to the next line, and then press return,
- the screen looks something like this:
- 3.5
- 10 REM This is meant to be right over to the edge
- 3.5
- 11 C
- 3.5
- 20 xxxxxxxxxxxx
- 3.5
- 30 xxxx
- 3.5
- If you then press the <page down> key, the comp-uter will freeze.
- 3.5
- Another bug, whose circumstances cannot be so readily repeated, occurs
- when pressing the <cursor down> key causing the program to shoot off the
- top of the screen, and nothing will bring it back again.
- 3.5
- Both of these are ‘mild’ bugs because pressing <reset> followed by
- typing *BASIC and OLD and EDIT restores everything back to it original
- state.
- 3.5
- • BASIC first please − If you want your computer to start up in BASIC
- instead of the desktop, use *CON. LAN. 4 and then do a <ctrl-break>.
- This also means that the full computer memory is available to your
- program. If you go to BASIC with <f12> to get a star command and then
- typing BASIC, you only get the memory available that has been allocated
- to the next application under the task display (651516 bytes). The
- reason for this is that BASIC is being run as the next task within the
- desktop environment. This can be seen by typing QUIT which will drop you
- back into the desktop with everything as it was before.
- 3.5
- The other way to get the full memory available is to press <shift-ctrl-
- f12> which will drop you out of the desktop completely, closing all
- tasks. This drops you into the operating system, so typing BASIC and
- then QUIT brings you back to the operating system prompt, not into the
- desktop.
- 3.5
- (This is one of those things which, according to Adrian is “obvious”,
- but to those of us who never reads manuals, it is news! So, the next
- time you discover something which someone else thinks is “obvious”, send
- it in to us as an H&T. Ed.)
- 3.5
- • CTRLing VDU scrolling − You can use the <scroll lock> key on the
- Archimedes to stop the computer printing (either to the screen or
- printer). Another method of doing this is to hold down the <shift> and
- <ctrl> keys. However, if you just hold the <ctrl> key down then you can
- slow down the speed of printing to about a 20th of it original speed.
- 3.5
- • Database routine − If you’ve written a database in BASIC e.g. an
- address book, it can be difficult to find a name unless you stick to a
- format where all entries are in upper case, or lower case apart from the
- initial letters. This little routine which uses 104 bytes is the
- solution. As well as accepting upper or lower case it also will accept
- the character “#” as a single character wildcard .
- 3.5
- It is identical to the BASIC command.
- 3.5
- INSTR(string,substring,start of search)
- 3.5
- Except the variables A%, $B% and $C% are declared before X=USR(code) is
- called, i.e.
- 3.5
- $B%=“main string”
- 3.5
- $C%=“substring”
- 3.5
- A%=start of search
- 3.5
- X=USR(code)
- 3.5
- There is an example program with the listing.
- 3.5
- 160 DEFPROCass
- 3.5
- 170 FORopt=0TO3 STEP3
- 3.5
- 180 P%=code
- 3.5
- 190 [ OPT opt
- 3.5
- 200 STMFD R13!,{r1-r12 ,R14} ;store
- 3.5
- registers. not R0
- 3.5
- 210 MOV R5,R0 ;start of search
- 3.5
- 220 MOV R0,#0 ;reset R0 (A%) for
- 3.5
- return
- 3.5
- 230 LDRB R7,[R2,#0] ;load R7 with
- 3.5
- first byte of $C%
- 3.5
- 240 CMP R7,#13 ;is it a CR?
- 3.5
- 250 BEQ end ;i.e. null sub-
- 3.5
- string. exit to BASIC
- 3.5
- 260
- 3.5
- 270 .nomatch
- 3.5
- 280 MOV R4,#0 ;initialise counters
- 3.5
- 290 MOV R3,#0
- 3.5
- 300 .nextchar
- 3.5
- 310 LDRB R6,[R1,R5] ;get byte of
- 3.5
- string
- 3.5
- 320 CMP R6,#13 ;is it CR ie end
- 3.5
- of string
- 3.5
- 330 BEQ end ;if yes, substring
- 3.5
- not found. exit
- 3.5
- 340 AND R6,R6,#95 ;AND to ignore
- 3.5
- case
- 3.5
- 350 LDRB R7,[R2,R4] ;first byte of
- 3.5
- substring
- 3.5
- 360 CMP R7,#13 ;is it a CR?
- 3.5
- 370 SUBEQ R0,R5,R3 ;yes i.e. end
- 3.5
- of substring
- 3.5
- 380 ;R5-R3 gives
- 3.5
- position in string
- 3.5
- 390 ADDEQ R0,R0,#1 ;plus 1. First
- 3.5
- char=0
- 3.5
- 400 BEQ end ; and exit
- 3.5
- 410
- 3.5
- 420 AND R7,R7,#95 ;AND to ignore
- 3.5
- case
- 3.5
- 430 ADD R5,R5,#1 ;increment
- 3.5
- counters for next chars
- 3.5
- 440 ADD R4,R4,#1
- 3.5
- 450 CMP R7,#3 ;is it a hash?
- 3.5
- If so make equal
- 3.5
- 460 MOVEQ R6,R7
- 3.5
- 470 CMP R6,R7 ;ARE bytes equal
- 3.5
- 480 ADDEQ R3,R3,#1 ;yes − get next
- 3.5
- sub string char
- 3.5
- 490 BEQ nextchar
- 3.5
- 500 BNE nomatch ;no try next
- 3.5
- string char
- 3.5
- 510 .end
- 3.5
- 520 LDMFD R13!,{r1-r12 ,R15};restore
- 3.5
- registers. R0 has INSTR
- 3.5
- 530 ]
- 3.5
- 540 NEXT
- 3.5
- 550 ENDPROC
- 3.5
- • Disappearing menus − After selecting an option on a menu, the menu
- disappears. To prevent this: instead of using <select> to select option,
- use <adjust>, and the menu will then stay on the screen.
- 3.5
- • Drawing with Outline fonts - If you possess Acorn DTP, you can use
- the !FontEd public domain program to create !Draw paths of the
- individual letters. This is done by dragging the character in the main
- !FontEd window into the !Draw document window. Once transferred, the
- letter can be manip-ulated just like any other drawing e.g. rotated,
- stret-ched, filled, etc. With a little patience, some very effective
- titles can be created.
- 3.5
- • DTP memory − A couple of hints to give extra memory when using Acorn
- DTP with a 1M machine: load the printer driver first and then quit
- before entering DTP. Only the modules are used for printing, which are
- left installed after you quit. Secondly, the use of screen mode 1 uses
- only 24k of memory and since it is a four colour mode, it gives a better
- grey scale than Mode 0.
- 3.5
- • E-Type bug − There is a bug in ‘All Tracks’ option of E-Type. If you
- press hard on the brakes when the time reaches 0:01 the program
- sometimes goes bonkers and when you are placed on the new track, your
- Trip Score increases.
- 3.5
- • External ST506 drives − If you add an external hard drive to an old
- 440 or 310, you may find that the whole system dies completely for no
- apparent reason. The problem is that if the external drive is powered up
- before the computer, a small voltage can be produced within the computer
- so when the power suplly on the computer tries to power up, it sees this
- voltage, panics and shuts down again! The simple solution is to power up
- the computer first and then the external drive.
- 3.5
- When switching off, work on the “last in, first out” principle and
- switch off the drive first. This is good practice since, if the drive is
- left switched on, as the computer powers down, extraneous signals on the
- drive’s data and control lines could conceivably be interpreted as
- something nasty like, “ Please wipe track 0, sector 0” and you end up
- with a “Bad Free Space Map”! (I’m sure that is Somebody’s Law.)
- 3.5
- • Interdictor Cheat − It is possible to alter your landing pad in
- Interdictor. Edit StateSave via !Edit. Go down to the 10th number and
- alter it. Note that Landing pad 2 is actually Landing pad 1 and so alter
- the 10th number to a 1 and so on. Also note that there are 7 runways,
- the 7th being known as the number 6. This might sound confusing but
- really it’s not!
- 3.5
- • Large hard drives on A410/1? − Someone asked us to find out whether
- it was possible to put hard drives with more than 8 heads onto an A410/
- 1. All we have been able to find out is that, to get the extra head
- select line, you need to change links LK12 and LK13. Whether the
- software will cope, we do not know. If anyone has any success with it,
- perhaps they would let us know.
- 3.5
- • Virus protection − If you are passing discs around, especially PD
- discs, guard yourself against the virus. When you receive or pass on a
- disc, you run the risk of your machine picking or up a virus or logic
- bomb.
- 3.5
- Passing on files: Format an unused disc and copy only the files you wish
- to send. Alternatively, wipe the disc (*Wipe * FR~C), copy the files and
- run my disc wiping program (see below). This is needed because deleting
- a file does not erase the data on the disc; it just causes the computer
- to forget about it. The data can be retrieved by anyone with a disc
- sector editor, so run the program if you want to thoroughly scrub the
- unused parts of the disc.
- 3.5
- Receiving files: Copy across only those files which you need. Try not to
- use the desktop as some logic bombs can sit in an application’s !Boot
- file and spring out at you when you open their directory viewer.* After
- copying, the original disc should be cleared by reformatting.
- 3.5
- 10 REM >Eradicate
- 3.5
- 20 REM Guards against the Virus and
- 3.5
- accidental giveaways of data
- 3.5
- 30 REM Erases totally the unused parts
- 3.5
- of a disc
- 3.5
- 40 REM PUBLIC DOMAIN by Sandie Goh
- 3.5
- 50 REM Version 1.21 (20-Sep-1989)
- 3.5
- 60 :
- 3.5
- 70 MODE 3:OFF:DIM blankspace 409600
- 3.5
- 80 PRINT“Disc Eradicator”
- 3.5
- 90 PRINT“===============”‘
- 3.5
- 100 PRINT“PUBLIC DOMAIN by Sandie Goh,
- 3.5
- Version 1.21 (20-Sep-1989)“‘
- 3.5
- 110 PRINT“Erases totally the unused
- 3.5
- parts of a disc.“
- 3.5
- 120 PRINT“HELPS guard against viruses,
- 3.5
- logic bombs etc.“‘
- 3.5
- 130 PRINT“Insert disc to be cleaned in
- 3.5
- drive 0 and press a key.“‘
- 3.5
- 140 *FX 15,1
- 3.5
- 150 IF GET
- 3.5
- 160 PRINT“Compacting, to collect free
- 3.5
- space into a single block.“
- 3.5
- 170 REPEAT
- 3.5
- 180 *COMPACT 0
- 3.5
- 190 SYS“ADFS_FreeSpace”,“0” TO total,
- 3.5
- biggest
- 3.5
- 200 UNTIL biggest=total
- 3.5
- 210 PRINT“Saving dummy files into the
- 3.5
- free space to wipe anything there.“
- 3.5
- 220 REM Use unlikely filenames to avoid
- 3.5
- clashes
- 3.5
- 230 IF biggest>409600 THEN
- 3.5
- 240 OSCLI (“SAVE ZZDelONN12 ”+STR$~
- 3.5
- blankspace+“ +64000”)
- 3.5
- 250 biggest=biggest-409600
- 3.5
- 260 ENDIF
- 3.5
- 270 OSCLI (“SAVE XXDelONN12 ”+STR$~
- 3.5
- blankspace+“ +”+STR$~biggest)
- 3.5
- 280 PRINT“Deleting the dummy files to
- 3.5
- release the space.“‘
- 3.5
- 290 *REMOVE ZZDelONN12
- 3.5
- 300 *DELETE XXDelONN12
- 3.5
- 310 PRINT“I now pronounce this disc
- 3.5
- clean.“
- 3.5
- *If you don’t believe me, I was myself the victim of a booby-trapped
- disc. After mounting a disc I picked up from a friend, I copied its
- contents across to my hard disc, only to find that it (the winchester)
- was now blank! Believing the problem to be a bug in the desktop or
- chance disc failure, I restored the hard disc and tried again − the same
- thing happened again, but this time when I did a *Compact 4.
- 3.5
- I tried everything and was just about to give up and complain to Acorn
- when a friend phoned me with the same problem. It turns out that he too
- had a copy of the disc I had picked up and I immediately became
- suspicious. Further research showed that the disc contained an invisible
- program which sat in the machine waiting for an opportune moment, then
- zapped the Winchester with a *Wipe :4.* FR~C.
- 3.5
- The subtlety of the program makes it even more deadly − the “error”
- occurs when you write to the hard disc using the desktop, so you are
- lead to think (as I was) that a bug or disc error is responsible. So be
- warned. Guard against the virus.
- 3.5
-
- • !chars − which is available as !1stchars with FWPlus version 2 and
- is also available on SID + Archive BBS + various PD discs, can be used
- for “mousing” text into !Draw applications.
- 3.6
- • !Draw − You can use the cursor keys for fine positioning when
- drawing Bezier curves or lines.
- 3.6
- • !Madness − I was always very disappointed with this Demo − until I
- looked at the !RunImage file and found a variable called madspeed% −
- guess what changing it to 1 does? Rob Davison
- 3.6
- • !system on floppies − Those of you without hard discs will have
- !system on various of your floppies. The trouble is that when you change
- to other discs, even if they have !system on them, you will be asked to
- insert the disc containing !system that the com-puter saw first of all.
- To get round this, double click on !system on the current disc before
- trying to launch applications from the disc.
- 3.6
- • Art Nouveau − Fills approximating to graduated, logarithmic,
- circular etc can easily be ‘designed’ and saved to disc. For example:
- 3.6
- Approx circle fill − Set a small grid size and switch it on. Draw
- several concentric filled circles, selecting each shade as you go. Smear
- the edges with ‘colour merge’ if you don’t want the bands of colour to
- show. Pick it up as a brush and use with: brush, effects1, distort x (or
- y). Some of the effect that Pro-Artisan and Atelier have as features can
- be cobbled together with a little effort using Art Nouveau (at half the
- price!). D P Allen.
- 3.6
- • Beware the SUM! − If you rely on indentation in your programs to
- keep a check on the structure of the various loops, beware that SUM(A())
- will cause an extra indent. Is there any way round this? Fred Hartley,
- Hayes.
- 3.6
- • Booting − When booting the Archimedes up it is tempting to just
- refer to applications assuming their path starts at the root ($). e.g.
- !Edit − can be installed on the desktop using just !Edit in a boot file.
- 3.6
- However, this will not ensure the appropriate system variable is set up
- with the full pathname. Again using !Edit as example, you would get just
- − Edit$Dir = !Edit
- 3.6
- To avoid this put the full name in the desktop boot file, e.g.
- 3.6
- *Run adfs:HardDisc.$.!Edit
- 3.6
- Only of much use if, like me, you decide to set the directory yourself
- while using Desktop (despite what Acorn advise!). Ian Pollock
- 3.6
- • Graph-Box − superb program but I find it very annoying that it
- ‘dies’ when you close the window. The following changes will give
- Graphbox an icon on the iconbar. It will only ‘die’ when you click
- <menu> followed by ‘quit’ as Edit and Draw etc. This lets you clear some
- valuable desktop space to write a letter or whatever. while still having
- Graphbox available on the icon bar.
- 3.6
- *BASIC
- 3.6
- LOAD “!GraphBox.!RunImage”
- 3.6
- 220 WHEN 3:PROCclosew(!q%):IF!q%=
- 3.6
- w_graphbox% THEN mainclosed%=TRUE
- 3.6
- 560 quit%=FALSE:mainclosed%=FALSE
- 3.6
- 4590 WHEN0:PROCclosew(w_graphbox%)
- 3.6
- :quit%=TRUE
- 3.6
- 5291 Icon%=sprites%:!Icon%=TRUE:
- 3.6
- DIM Spritename% 14:$Spritename%=
- 3.6
- “!graphbox”:Icon%!4=0:Icon%!8=0:
- 3.6
- Icon%!12=64:Icon%!16=68:Icon%!20=
- 3.6
- (&311A OR (7<<28))
- 3.6
- 5292 Icon%!24=Spritename%:Icon%!28=1:
- 3.6
- Icon%!32=12:SYS “Wimp_CreateIcon”
- 3.6
- ,,Icon% TO graph_iconbar%
- 3.6
- 5445 READ t$:m_iconbar%=FNcrmenu(t$)
- 3.6
- 5447 DATA “#Graphbox,Info>w_pinfo%,
- 3.6
- Quit“
- 3.6
- 5710 REM quit%=TRUE
- 3.6
- 6395 IF mh%=-2 AND mb%=4 OR mb%=1024
- 3.6
- AND mi%=graph_icnbar% THEN PROCgetw
- 3.6
- (w_graphbox%):PROCfront(w_graphbox%
- 3.6
- ,420,150):mainclosed%=FALSE
- 3.6
- 7375 WHEN-2:IFmi%=graph_icnbar% THEN
- 3.6
- PROCpop(m_iconbar%,-1)
- 3.6
- 8219 IF menu%=m_iconbar% my%+=64
- 3.6
- 8545 WHEN m_iconbar%:IF !mlist%=1
- 3.6
- THEN quit%=TRUE
- 3.6
- 16505 IFmainclosed%=TRUE PROCfront
- 3.6
- (w_graphbox%,420,150):
- 3.6
- mainclosed%=FALSE
- 3.6
- SAVE “!GraphBox.!RunImage”
- 3.6
- NOTE: Graphbox claims what you have in your next slot up to a max of
- 640k but as the program needs only a minimum of around 200k to run,
- there’s space for a very big graph! Before loading Graphbox, drag the
- ‘next’ slot down to about 330k to free some more space. You can edit the
- !run file and change the -max to reconfigure it more permanently. Rob
- Davison
- 3.6
- • Installing Alerion − Here are the steps you must take in order to
- install RISC-OS Alerion onto your hard disc:
- 3.6
- (i) create a RAM disc with at least 432k
- 3.6
- (ii) copy the !Alerion directory into the RAM disc
- 3.6
- (iii) alter the RAM disc !Boot file in the !Alerion directory so that it
- reads:
- 3.6
- IconSprites <Obey$Dir>.!Sprites
- 3.6
- (iv) also alter the !Run file so that reads:
- 3.6
- Set Alerion$Dir <Obey$Dir>
- 3.6
- RMClear
- 3.6
- RMLoad MemAlloc
- 3.6
- RMSize 320k
- 3.6
- ScreenSize 160k
- 3.6
- RMKill MemAlloc
- 3.6
- Run <Alerion$Dir>.!RunImage
- 3.6
- (v) copy the !Alerion directory from the RAM disc to your hard disc.
- 3.6
- • Rounding Errors − Try typing P.STR$(0.6) in BASIC. If you are
- putting the string of a variable into a writeable menu option when
- programming a wimp system and this rounding error comes up, the
- resulting string can overwrite some of the data structure for your menu.
- The result is often an “Abort on data transfer”! This can be quite hard
- to track down so be careful. DIMming the block to 5 bytes will stop a
- crash but will leave the user with a 0.6666666669 to edit instead of
- 0.6. This can be a bit disconcerting. To solve it, set @% to round to
- e.g. 2 decimal places before doing the STR$ and reset @% afterwards −
- see 400 series BASIC Guide pp277-278 for details. Rob Davison
- 3.6
- • Screen modes & memory claiming − If your program has a proper RISC-
- OS front end, it can change modes without worrying about screen memory.
- If there is enough in ‘free’ and ‘next’ it will be shunted to screen
- memory and the mode selected. Rob Davison
- 3.6
- • Synthesiser MIDI modes − The answer to Gerald Fitton’s problem
- (issue 2.12 p 18) that his Korg synthesiser plays all channels no matter
- what he does, is that his synthesiser is not in the correct MIDI mode.
- 3.6
- All MIDI devices operate under modes. These are as below:
- 3.6
- MIDI mode 1: OMNI On/Poly
- 3.6
- MIDI mode 2: OMNI On/Mono
- 3.6
- MIDI mode 3: OMNI Off/Poly
- 3.6
- MIDI mode 4: OMNI Off/Mono
- 3.6
- OMNI On/Off selects whether the device receives on all MIDI channels
- (OMNI On) or only on one MIDI channel (OMNI Off). Poly means that the
- device will be able to play two or more notes at the same time and Mono
- means that it will only be able to play one at a time. The Korg will
- almost certainly be in MIDI mode 1, which is how most synthesisers are
- set up when they are sent from the shop. The answer is to change the
- MIDI mode to 3 or 4 and to set the Korg to receive on the same MIDI
- channel as Maestro is sending.
- 3.6
- • Wimp Resizing − I have written a program which needs a large area of
- memory as store for data. The program works in the desktop and claims
- memory via SYS “Wimp_SlotSize”. Initially, I used the BASIC statement
- “END=HIMEM + value%” but this also changes the address of HIMEM. Loops,
- procedures and local variables are stored just below HIMEM so my data
- was being overwritten. I tried lowering HIMEM immediately afterwards but
- things still went wrong so I use “Wimp_SlotSize” directly. BASIC is
- ignorant of the new memory area and it can therefore be safely used as a
- store. Use a variable “Claimer%’ and exit the Wimp_Poll loop if it’s not
- zero then call Wimp_SlotSize. R.D.
- 3.6
-
- • !Draw − I used to find it difficult to get to grips with !Draw
- because I couldn’t visualise the final layout. However, if you use the
- ‘new view’ option together with ‘zoom’ you can get a WYSIWYG view. Not
- only this, but it is possible to manipulate the major view from the
- minor view. L Kennedy.
- • Acorn DTP − This may seem obvious but I only just figured it out!
- When printing documents from Acorn DTP, I found that footers (in
- particular) wouldn’t print. I spent ages looking through the DTP manual
- trying to figure out why. I suddenly occurred to me that it might be the
- printer driver and sure enough, it was. The page size for A4 paper has
- margins set all round, in particular a bottom margin of 20 mm is set,
- and it is this which is ‘clipping’ out the footers. Set this to 0 (say)
- and the problem is solved. Kevin Quinn
- 3.7
- • BASIC programs from !Edit − When in !Edit you can actually run BASIC
- programs etc from within the desktop without pressing <f12>. I happened
- to come across this accidentally. Press <menu> on the Edit icon and
- click on New Task Window. This will produce a task window on the screen
- and will allow you to execute the BASIC environment without leaving the
- desktop and allow you to format disks also allowing you to nearly multi-
- task formatting disks, you can suspend the task get on with something
- then resume the task and the formatter will continue where it left off!
- Press-ing <menu> from within the task window will give a list of
- commands (anyone know what link/unlink does??) Graham Bisset
- 3.7
- • Changing your batteries and keeping your CMOS RAM settings intact.
- If you connect a 100 microfarads capacitor in series with a 100 ohm
- resistor and clip them across the battery connec-tions, (+ve of the
- capacitor to +ve of the battery) you will have about 70-100 seconds to
- change your batteries without losing your CMOS settings. The computer
- should be kept switched off throughout the operation. J W E Jones
- 3.7
- • Current directory path − With reference to Richard Skemp’s query in
- Archive 3.5 p43 about getting the full pathname of the current direc
- tory, the ‘easiest on your fingers’ method uses system variables. It was
- difficult to implement and required a fair amount of digging in the
- manuals but it does demonstrate the use of *Set, *SetMacro and *SetEval,
- so here it is:
- 3.7
- Place the following two lines into an Obey file, either via *Build or by
- using !Edit. Save it in the library directory of your current disc as
- “Path” and set the filetype to be an Obey file (*SetType %.Path Obey).
- Execute it with *Path. Subsequent use of *Path will have other effects −
- see later.
- 3.7
- Set Path$ $
- 3.7
- SetMacro Alias$Path Dir %%0||mIf “%%0” = “” Then Set Path$ $ Else If
- “%%0”LEFT1 = “$” Then Set Path$ %%0 Else SetEval Path$ Path$ + “.%%0”
- 3.7
- How it works: “Set Path$ $” sets up a system variable called “Path$” and
- assigns to it the string value “$”, which you will recognise as being
- the name of the root directory.
- 3.7
- “SetMacro Alias$Path É” creates a macro system variable called “Path”.
- 3.7
- When “*Path [<directory path>]” is executed, the macro first selects the
- directory specified in <dir-ectory path> by way of the old *Dir command.
- 3.7
- If no directory path is specified, the old *Dir selects the root
- directory. The macro examines <directory path> and, if it is a null
- string (“”), it sets Path$ to “$”.
- 3.7
- If the leftmost character of <directory path> is “$”, the macro replaces
- Path$ with <directory path>.
- 3.7
- If <directory path> is not null and does not have “$” as its leftmost
- character, the macro appends a full stop and the string specified in
- <directory path> to whatever Path$ contains.
- 3.7
- Path$ thus always contains the full pathname of the currently selected
- directory (CSD).
- 3.7
- You can actually redefine *Dir itself to do this, so that you don’t have
- to remember to use *Path ins-tead of *Dir. In other words, it becomes
- transparent.
- 3.7
- All you do is to change the first occurrence of Path (in “Alias$Path”)
- to Dir (i.e. “Alias$Dir”) and change the “Dir %%0” to “%Dir %%0”. The
- extra % sign in front of Dir is to enable the original version of Dir to
- be used (FORTH programmers will recognise this as smudging). I have not
- actually tried this, but it should work!!
- 3.7
- How to use it:
- 3.7
- Use “Path” wherever you would use “Dir”. In fact, do not use “Dir” at
- all (more on this later). Also use full pathnames, as opposed to
- wildcarded path-names. This is not really necessary, but it looks
- neater.
- 3.7
- The command “*Path Basic.Games.Adventure”, executed from the root
- directory, would set sub-directory “Adventure” as the CSD, exactly in
- the same way as “*Dir Basic.Games.Adventure” would do.
- 3.7
- Notes:
- 3.7
- 1. No leading asterisks. You may enter them, but they are superfluous,
- as these lines are sent direct to the CLI.
- 3.7
- 2. The use of two double bar characters in ||m. This is so that Obey
- will insert it in the macro variable as |m, instead of as ASCII 13.
- 3.7
- Alias$Path is a multi-line (well, a 2-line) com-mand. This is quite
- acceptable, provided each line is separated by a carriage return (ASCII
- 13, or |m).
- 3.7
- Note that the (*)Dir command is at the start of the macro. Putting it
- at the end causes errors related to the (*)IfÉThenÉElse construct.
- 3.7
- 3. Double percentage character in %%0. This is so that Obey will insert
- it in the macro variable as %0, instead of attempting to evaluate a
- (non-existent) parameter when the command *SetMacro is executed.
- 3.7
- 4. Double quote marks where the parameter is to be evaluated as a
- string. This is so that string evaluation will proceed correctly.
- 3.7
- 5. Use of upper and lower case. In general they are interchangeable at
- will.
- 3.7
- (*)Eval supports a number of operators (see p.394 in the Archimedes User
- Guide). Some are in the form of ordinary words, such as LEFT, MOD, AND,
- OR, etc, and others are symbols, such as *, +, >>, etc. The ordinary
- words must be in UPPER CASE, otherwise they are not recognised.
- 3.7
- Disc-related commands seem to be quite happy when offered system
- variables as pathnames. If an application sets up its own pathname as,
- say, “Application$Dir”, you can make the first line of a BASIC program.
- 3.7
- 10 REM > <Application$Dir>.Program
- 3.7
- and be confident that the BASIC command SAVE will put it in the right
- place, as the Filer (I think) evaluates <Application$Dir> correctly.
- Also *Eval Application$Dir (without the <>) also returns the value of
- the variable.
- 3.7
- You can get the value of the system variable into a BASIC variable with
- the following FN:
- 3.7
- buffer_length%=255
- 3.7
- DIM buffer% buffer_length%
- 3.7
- PRINT FNevalOS(“Application$Dir”) : REM NB!! no < >
- 3.7
- END
- 3.7
-
- 3.7
- DEF FNevalOS(A$) LOCAL T%,L%
- 3.7
- SYS “OS_EvaluateExpression”, A$,buffer%,buffer_length% TO ,T%,L%
- 3.7
- IF T%=0 THEN = L% : REM integer result
- 3.7
- buffer%?L%=13
- 3.7
- =$buffer% : REM string result
- 3.7
- Anton Mans, Durban
- 3.7
- • Double height in Fortran − The following short FORTRAN routine can
- be used for the Archimedes to ‘tart up’ screen output. It is a routine
- for printing text in double height on the screen and uses OS_Word call
- 10 to read the system font bit pattern. A VDU23 call is used to define a
- pair of characters consisting of the upper and lower halves of the input
- character. These two characters are then printed, one above the other,
- giving a double-height character. It’s very useful for printing headings
- in screen output and doesn’t require messing about with special fonts
- (I’m going to go on to that next!).
- 3.7
- I claim no originality for the overall method. A routine in BBC BASIC to
- do this was published in Beebug some years ago (I forget who the author
- was), but I thought it was worth publicising a FORTRAN version of it in
- Archive because I don’t think the translation is immediately obvious and
- readers may not have been aware of the technique anyway. It should be
- easily extendible to double width, quadruple height, etc.
- 3.7
- Rather than just give the bare routine, I have produced a short program
- incorporating it, that writes out a couple of strings. Much use is made
- of the ‘$’ format to suppress CRLF when characters are being sent to the
- VDU driver. The routine is more complex than the BASIC equivalent for
- two reasons. Firstly, although there is a word ‘LEN’ in FORTRAN, it only
- seems to give the maximum length of any given string, i.e. the length
- that it is originally declared to be (e.g. CHARACTER*78 TXT; LEN(TXT)
- gives 78). So in SUBROUTINE DOUBLE, there are a few lines to find the
- length of the string passed to it by counting backwards from the maximum
- length until a non-space character is reached. N.B. this will fail if
- the string is put into the argument list, e.g. CALL DOUBLE(10,20,‘Hi
- there’). Secondly, since individual bytes in memory are not accessible
- to FORTRAN, you have to get the result back as three (4-byte) integers,
- and use IAND with ISHFT to gain access to the bytes.
- 3.7
- PROGRAM DHTEST
- 3.7
- C *******************************
- 3.7
- C A DEMONSTRATION PROGRAM FOR
- 3.7
- PRINTING DOUBLE HEIGHT
- 3.7
- C TEXT IN ANY MODE (NOT 7) ON THE
- 3.7
- ACORN ARCHIMEDES,
- 3.7
- C IN ACORNSOFT FORTRAN. USES ACORN
- 3.7
- EXTENSIONS: OSWORD, ISHFT, IAND
- 3.7
- C BY R.D.WRIGHT
- 3.7
- C *******************************
- 3.7
- CHARACTER*78 TXT
- 3.7
- WRITE(6,’($,2A)’)CHAR(22)
- 3.7
- ,CHAR(12)
- 3.7
- WRITE(6,*)’DOUBLE HEIGHT TEST’
- 3.7
- TXT=’THIS IS A VERY LONG TEST
- 3.7
- STRING’
- 3.7
- CALL DOUBLE(10,20,TXT)
- 3.7
- TXT=‘AND MORE’
- 3.7
- CALL DOUBLE(10,23,TXT)
- 3.7
- STOP ‘END OF DEMO’
- 3.7
- END
- 3.7
- SUBROUTINE DOUBLE(ICOL,IROW,TXT)
- 3.7
- CHARACTER*78 TXT
- 3.7
- INTEGER BLOCK(0:2)
- 3.7
- INTEGER B(0:8)
- 3.7
- N=79
- 3.7
- 10 N=N-1
- 3.7
- IF (TXT(N:N).EQ.‘ ’) GO TO 10
- 3.7
- DO 20 I=1,N
- 3.7
- BLOCK(0)=ICHAR(TXT(I:I))
- 3.7
- CALL OSWORD(10,BLOCK)
- 3.7
- DO 2010 J=1,3
- 3.7
- BLOCK(0)=ISHFT(BLOCK(0),-8)
- 3.7
- B(J)=IAND(BLOCK(0),?IFF)
- 3.7
- 2010 CONTINUE
- 3.7
- B(4)=IAND(BLOCK(1),?IFF)
- 3.7
- DO 2020 J=5,7
- 3.7
- BLOCK(1)=ISHFT(BLOCK(1),-8)
- 3.7
- B(J)=IAND(BLOCK(1),?IFF)
- 3.7
- 2020 CONTINUE
- 3.7
- B(8)=IAND(BLOCK(2),?IFF)
- 3.7
- WRITE(6,‘($,10A)’)CHAR(23),CHAR(
- 3.7
- 240),CHAR(B(1)),CHAR(B(1))
- 3.7
- +,CHAR(B(2)),CHAR(B(2)),CHAR(B(3
- 3.7
- )),CHAR(B(3)),
- 3.7
- +CHAR(B(4)),CHAR(B(4))
- 3.7
- WRITE(6,‘($,10A)’)CHAR(23),CHAR(
- 3.7
- 241),CHAR(B(5)),CHAR(B(5))
- 3.7
- +,CHAR(B(6)),CHAR(B(6)),CHAR(B(7
- 3.7
- )),CHAR(B(7))
- 3.7
- +,CHAR(B(8)),CHAR(B(8))
- 3.7
- IX=ICOL+I-1
- 3.7
- IYU=IROW
- 3.7
- IYL=IROW+1
- 3.7
- WRITE(6,‘($,8A)’)CHAR(31),CHAR(
- 3.7
- IX),CHAR(IYU),CHAR(240)
- 3.7
- +,CHAR(31),CHAR(IX),CHAR(IYL)
- 3.7
- ,CHAR(241)
- 3.7
- 20 CONTINUE
- 3.7
- RETURN
- 3.7
- END
- 3.7
- R.D.Wright
- 3.7
- • Easy ‘C’ Compilation I − While working on a C program it can become
- quite tedious to type in the same parameters every time you want to
- compile the latest version of your program. One way to get around this
- is to use something like “C-Front” from Mitre which allows you to
- compile directly from the desktop. A simpler and cheaper way is to use
- an ‘Obey’ file which will do the job for you. Below is an example that
- has been written to make the compilation of C (Release 3) programs
- easier. Using this method, you can still work from the desktop editing
- your text in !Edit, saving it, then pressing <f12>. You can then use the
- following command:
- 3.7
- *c <inputname> [outputname]
- 3.7
- It will then automatically Compile and Link your new masterpiece!
- 3.7
- The program has been fully commented to aid understanding. It should be
- saved as an ‘Obey’ file in the ‘Library’ directory under the name “C”.
- Obviously it should be customised to suit your own directory layout and
- preferred compiler options.
- 3.7
- | ‘C’ Obey file, Compiler & Linker -
- 3.7
- 16/02/90 Mark Taylor
- 3.7
- | Syntax : “*C <inputname> [output
- 3.7
- name]“
- 3.7
- | Where ‘inputname’ is the name of
- 3.7
- the file to be compiled
- 3.7
- | and ‘outputname’ is the name of the
- 3.7
- output file, e.g. !RunImage, etc.
- 3.7
- |
- 3.7
- | Check for parameters. If none
- 3.7
- present then error and output
- 3.7
- a message.
- 3.7
- if “%0” = “” then error 0 Error in
- 3.7
- ‘C’ Compiler & Linker. Syntax : *C |<inputname|> [outputname]
- 3.7
- |
- 3.7
- | Set system variable ‘ipname$’ to
- 3.7
- first parameter after the “c”.
- 3.7
- Set ipname$ %0
- 3.7
- |
- 3.7
- | Check for a second and if there is
- 3.7
- one set ‘opname$’ to that
- 3.7
- variable,
- 3.7
- | else set ‘opname$’ equal ‘ipname$’.
- 3.7
- If “%1” > “” then Set opname$ %1 else
- 3.7
- Set opname$ %0
- 3.7
- |
- 3.7
- | Compile with ‘ipname$’, do NOT Link
- 3.7
- (-c). ANSI 3 Standard method.
- 3.7
- cc -c <ipname$> -I$.RISC-OSLib
- 3.7
- |
- 3.7
- | Link ‘ipname$’ with standard lib-
- 3.7
- raries and output as ‘opname$’.
- 3.7
- link -o <opname$> o.<ipname$> $.RISC
- 3.7
- -OSLib.o.RISC-OSLib $.CLib.o.Stubs
- 3.7
- |
- 3.7
- | Echo finishing message.
- 3.7
- Echo File ‘<ipname$>’ successfully
- 3.7
- compiled as ‘<opname$>’.
- 3.7
- | Unset the temporary variables.
- 3.7
- Unset ipname$
- 3.7
- Unset opname$
- 3.7
- Below is a cut down version that is not quite as sophisticated but is
- easier to understand.
- 3.7
- | ‘C’ Obey file, Compiler & Linker -
- 3.7
- 16/02/90 Mark Taylor
- 3.7
- | Syntax : “*C name” Where ‘name’ is
- 3.7
- the name of the file to be
- 3.7
- compiled.
- 3.7
- cc -c %0 -I$.RISC-OSLib
- 3.7
- link -o %0 o.%0 $.RISC-OSLib.o.RISC
- 3.7
- -OSLib $.CLib.o.Stubs
- 3.7
- Echo File ‘%0’ successfully compiled.
- 3.7
-
- 3.7
- • Easy ‘C’ Compilation II − This is not a new idea but it is still
- worth mentioning. To speed up the compilation of ‘C’ programs it is a
- good idea to copy the necessary files to a RAM disc. I have written an
- Obey file to achieve this. It is best saved into the Library directory
- so that it may be called from the star (*) prompt any time. The way the
- file is set up at the moment means that it will copy files from the hard
- disc to a RAM disc of some 1.5M. The RAM disc is set up using the
- “MemAlloc” module (this can be found in the !Lander directory on the
- Apps2 disc of RISC-OS). It should be copied in the mod-ules directory of
- the !System folder. The directory layout reflects a fairly standard
- system under release 3 of Acorn’s ANSI C.
- 3.7
- Important!
- 3.7
- You must remember to copy the files you have changed during your session
- back to disc before switching off!
- 3.7
- | Obey file to set up RAM disc as the
- 3.7
- working disc for ‘C’ 18/1/90
- 3.7
- |
- 3.7
- | First create large RAM disc: 1.5MB!
- 3.7
- RMensure MemAlloc 0.11 RMload :4.$.
- 3.7
- !System.modules.memalloc
- 3.7
- RAMFSSize 1500
- 3.7
- RMensure SharedClibrary 3.50 RMload
- 3.7
- :4.$.!System.modules.clib
- 3.7
- RMensure FPEmulator 2.80 RMload :4.$.
- 3.7
- !System.modules.FPE280
- 3.7
- |
- 3.7
- CDir RAM:$.RISC-OSlib
- 3.7
- CDir RAM:$.Clib
- 3.7
- CDir RAM:$.User
- 3.7
- Copy ADFS:$.RISC-OSlib.* RAM:$.RISC-
- 3.7
- OSlib.* ~cr~v
- 3.7
- Copy ADFS:$.CLib.* RAM:$.Clib.* ~cr~v
- 3.7
- Copy ADFS:$.User.* RAM:$.User.* ~cr~v
- 3.7
- CDir RAM:$.Library
- 3.7
- Copy ADFS:$.Library.link RAM:$.Library.* ~c~v
- 3.7
- Copy ADFS:$.Library.cc RAM:$.Library.* ~c~v
- 3.7
- Copy ADFS:$.Library.squeeze RAM:$.Library.* ~c~v
- 3.7
- | Copy my single letter Obey file ‘C’.
- 3.7
- Copy ADFS:$.Library.c RAM:$.Library
- 3.7
- .* ~c~v
- 3.7
- |
- 3.7
- |Define function keys.
- 3.7
- k.1c
- 3.7
- k.2cc -c
- 3.7
- k.3-I$.RISC-OSLib
- 3.7
- k.4link -o
- 3.7
- k.5$.RISC-OSLib.o.RISC-OSLib
- 3.7
- k.6$.CLib.o.Stubs
- 3.7
- k.7Squeeze -v
- 3.7
- | Delete all unwanted object files!
- 3.7
- k.12wipe o.* ~c
- 3.7
- |Perform *RAM at the end!
- 3.7
- RAM
- 3.7
- |Select $.User directory!
- 3.7
- Dir $.User
- 3.7
- Echo RAM Disc now setup correctly
- 3.7
- (DIR=$.User)
- 3.7
- Echo
- 3.7
- free
- 3.7
- Filer_OpenDir RAM:$.User.c
- 3.7
- • Music Maestro please! − The !Maestro applic-ation provided by Acorn
- is very powerful, if very complex. However, it still has a number of
- short-comings relative to the old Island Logic’s “Music System” for the
- BBC micro. These include the inability to delete whole bars or several
- bars; the inability to handle triplets; the inability to change Tempo
- within a passage. Also, entering scores by dragging icons is extremely
- slow and laborious and finally, “Music System” counted notes in a bar
- and, when the right time had been used, automatically entered a bar-
- line. This not only saved an operation, it also provided a cross-check
- on typing accuracy: the unexpected appearance of a bar-line indicated a
- mistake somewhere.
- 3.7
- !Maestro’s !RunImage file has been modified to permit changing of the
- Tempo during a passage. This required a new sprite, placed in the space
- in the top right corner, next to the hemi-demi-semi-quaver rest; ‘M’ for
- Metronome seemed to be a reasonable choice. This sprite can be picked
- up, just like the others, and placed above the appropriate bar-line.
- When it is ‘clicked’ to fix it in position, it changes into the crotchet
- symbol followed by “=<num>”, where <num> is a number from 40 to 210,
- representing the Tempo as selected by the Tempo sub-menu from the main
- Maestro menu. The numbers (of beats per minute) are given on page 1810
- of the Programmer’s Reference Manual.
- 3.7
- During these investigations, a few small errors were noticed in the
- Programmer’s Reference Manual (RISC-OS Edition). In Vol.4, under Music
- Files:
- 3.7
- p.1809 “Maestro” is followed by “Line-feed”, &0A (not &0D)
- 3.7
- Music Data: Not “4*8 length of queue of notesÉ” but “5*8” because the
- length is written to file as an integer variable, FINE%(C%) (as in DC al
- fine!), so it consists of one byte (&40:integer) followed by 4 bytes
- (value).
- 3.7
- p.1811 Attributes: Clef Bit 5 is unused Bits 6 & 7 are (Stave−1), range
- 0−3. The attributes as defined in !Maestro. !RunImage lines 28900−29020
- agree with those obtained by a *DUMP of a Music file. Alan Quayle
- 3.7
- • Shift Caps Lock will give you capitals normally but will enable
- lower case characters to be typed by holding down the shift key − very
- useful when writing BASIC programs. Fred Lee
- 3.7
- • SID − There is a mail-server on the SID database and so if you can
- use E-MAIL (e.g. if you are a student at University, like me) then you
- can mail it at SIDInfo@uk.co.acorn with a message contain-ing the word
- ‘help’ and it will mail you a file telling you how to download stuff.
- It only has the free PD stuff though (obviously). The advantages of this
- service work both ways − the SID machine can schedule the replies in
- non-peak times and you are not using lots of on-line time down-loading.
- Kevin F. Quinn
- 3.7
- • TinyDirs − it may be obvious to most of you butÉ The TinyDirs
- program not only allows directories to be installed on the icon bar but
- allows applications to be as well. After all they are only directories
- really. The application can then be run by clicking on the icon on the
- icon bar in just the same way as any other application. This means you
- can have your favourite programs on the icon bar without having to worry
- about how to install them there. The TinyDirs program will also cope
- with more than one directory. (A friend was running a new copy of
- TinyDirs each time he wanted a new directory installed.) If you just
- drag the icon for the directory you want installed onto one of those
- already there it will be added to the list. Andrew Ling.
- 3.7
- • Turkish ‘i’ − There is a minute error in the char-acter set supplied
- as “Latin3” on the Archimedes which, according to Acorn’s manual,
- corresponds to ISO 8859/3 covering German, Spanish, Turkish etc.
- Character 185 is supposed to be the Turkish lower case ‘i’, i.e. like
- the English ‘i’ but without the dot. (The Mac has let me down for once −
- no Turkish ‘i’! Ed.) Instead, it replicates the standard Latin ‘i’.
- 3.7
- To overcome this, insert the following in a boot file:
- 3.7
- *echo <23><185><0><0><56><24><24>
- 3.7
- <24><60><0>
- 3.7
- John Morgan
- 3.7
- • Working on a 1Mbyte machine − When loading applications within the
- desktop especially on a 1Mb machine, always call up the task display and
- reduce the size of the next slot to as low as the machine will allow,
- some applications will allow you to set it to 8k and they will just grab
- as much memory as they need, however some will report ‘App need XXXk to
- start’ so change the slot to about XXX+20k for workspace. If you do this
- then the application can only grab as much memory as it needs. However,
- if you leave say 640k in the next and you click on an application then
- its likely that the application will grab about 600k or so leaving
- precious little for other programs, data etc Users of 2Mb+ machines
- don’t have the problem, but they still need to be careful of memory
- grabbing applications! Graham Bisset
- 3.7
-
- • Auto-Booting on Startup − The following tip is of particular use to
- users of hard disks.
- 3.8
- With so many extensions to RISC-OS being avail-able, most notably the
- Outline Font Manager, it can be inconvenient if your applications can’t
- find them and even worse if the first !System directory that is seen is
- on a floppy.
- 3.8
- The simplest solution to this is to put !Fonts and !System in the root
- directory of your hard disk and then open the root directory as your
- first action.
- 3.8
- However, if the same action has to be performed repeatedly, then the
- computer must be able to do it for you and it can.
- 3.8
- First you should create a command file called !Boot in Edit. This should
- contain something like:
- 3.8
- adfs::4.$.!System
- 3.8
- adfs::4.$.!Fonts
- 3.8
- DESKTOP
- 3.8
- This will then initialise the system and font paths before starting the
- desktop. To make it run on startup, you must configure the system to
- execute the !boot file, this is done from an operating system * prompt
- by:
- 3.8
- *configure boot
- 3.8
- *configure drive 4
- 3.8
- *opt 4,3
- 3.8
- The last option sets the current drive to execute the !boot file, rather
- than attempting to run it as a BASIC program.
- 3.8
- This is not the end of the startup. When you invoke the desktop, it is
- possible have one or more applications run automatically. To run a
- single application, just append the application path on the end of the
- DESKTOP command, for example:
- 3.8
- DESKTOP adfs::4.$.!Edit
- 3.8
- This will startup the desktop with Edit on the menu bar. To initialise
- more than one application, you specify a text file which lists all the
- applications that you wish to start.
- 3.8
- DESKTOP -File adfs::4.$.Startup
- 3.8
- The file Startup might contain the following list of files:
- 3.8
- adfs::4.$.!Draw
- 3.8
- adfs::4.$.!Edit
- 3.8
- adfs::4.$.!Paint
- 3.8
- This will then enter the desktop and start Draw, Edit and Paint
- automatically. One word of warning, if you are limited to 1 Mb, be
- careful as it would be very easy to use up all the available memory.
- 3.8
- Further customisation could be had by adding RMload commands to the !Run
- file of !System to automatically load modules (such as NewModes) and
- Filer_OpenDir pathname to the !Run files of applications in the startup
- file to automatically open directory viewers. Phil Kitching
- 3.8
- • BasicEdit − For users of the Data Store !Basic-Edit application:
- Because this application uses the DSUtil module to alter the operation
- of the mouse pointer it is not possible to run desktop programs
- successfully from Edit without returning to the desktop first. This,
- however, has the disadvantage that programs are more difficult to debug:
- when a program ends it returns to the desktop and all the variables are
- lost. A few simple changes to the !BasicEdit.!RunImage program, however,
- seem to provide a satisfactory remedy. Insert near the start of the
- program the following function key definitions:
- 3.8
- *KEY 2 *BEUtilOff|M*BASIC|MOLD|M
- 3.8
- RUN|M
- 3.8
- *KEY 3 *BEUtilOn|MEDIT .|M
- 3.8
- Then to run any program from the Edit screen simply press <f1> once and
- <f2> once. If the prog-ram uses the Wimp, the desktop will reappear as
- it was before you ran !BasicEdit with the new program running as well.
- After the program ends, a “command window” will appear where you can use
- LVAR or any other BASIC commands. To return to the Edit screen where you
- left it, simply press <f3>. Hugh Eagle
- 3.8
- • Battery changing − You don’t have to bother with adding capacitors
- etc as mentioned last month. All you need to do is leave the computer
- switched on while changing the batteries (but mind your fingers on the
- fan!). There is no danger involved, as the mains is totally enclosed,
- and it will not harm the machine. Mike Harrison.
- 3.8
- • C programming − When writing desktop applications, put —DATE— in the
- version string. So, if you forget to update the version number when
- modifying the source files, it doesn’t really matter because when the
- info is given from the menu, you can then find out what date the file
- was compiled. R Bunnett.
- 3.8
- • Closing the Edit window using <adjust> (instead of <select>) the
- source directory is opened after the window has been closed. Holding the
- <shift> key down simultaneously, will cause the directory viewer to be
- opened without closing the Edit window (this allows you to drag-save the
- file into the same directory, but with a different name). This is also
- true for Draw and Paint.
- 3.8
- • Double clicking problems − Double clicking on an application
- installed on the icon bar by !TinyDirs can result in the application
- running twice. This can have the confusing result that when you quit the
- application a second copy of it immediately appears in its place.
- 3.8
- I have found a somewhat cumbersome solution to this problem which is to
- include the following code in the WimpPoll loop:
- 3.8
- WHEN 17 : IF block%!4<>TaskId% AND block%!16=&400C2 THEN
- 3.8
- PROCInsertCR(block%+28)
- 3.8
- dummy$=$(block%+28)
- 3.8
- IF dummy$=TaskName$ THEN
- 3.8
- quit%=TRUE
- 3.8
- ENDIF
- 3.8
- ENDIF
- 3.8
- .
- 3.8
- .
- 3.8
- DEF PROCInsertCR(mem%)
- 3.8
- LOCAL I%
- 3.8
- I%=mem%
- 3.8
- REPEAT
- 3.8
- I%+=1
- 3.8
- UNTIL ?I%=0
- 3.8
- ?I%=13
- 3.8
- ENDPROC
- 3.8
- When the first application receives the message that is broadcast when a
- new application starts (i.e. it receives reason code 17 with
- block%!16=&400C2) and it finds that the new task has the same name
- (TaskName$) as itself, it sets quit%=TRUE which makes the application
- quit at the end of the poll loop.
- 3.8
- Note that when each application starts, it receives the message
- broadcast by itself, hence the com-parison of block%!4 (which holds the
- handle of the sender of the message) with TaskId% to prevent the task
- from shutting itself down!
- 3.8
- Note also that the little procedure PROCInsertCR seems to be necessary
- to convert the string at block%+28 from a zero terminated string to a
- normal &0D terminated one. (Can anyone explain please RISC-OS’s
- infatuation with these wretched zero-terminated strings ... and to say
- that it’s because C or Unix, or whatever, uses them is no answer!) Hugh
- Eagle
- 3.8
- • Filer_OpenDir − The command ‘Filer_Open Dir’ may be used for any
- file path. This includes ‘filing systems’ created using a system
- variable (e.g. System$Path) may be referred to as the filing system
- ‘system:’. Some ‘filing systems’ are one direction only (e.g. printer:).
- The command can also use SystemDevices’ own ‘filing systems’:
- 3.8
- kbd: / rawkd: the keyboard
- 3.8
- null: the ‘null device’
- 3.8
- printer: the printer
- 3.8
- serial: the serial port
- 3.8
- vdu: / rawvdu: the screen
- 3.8
- netprint: the network printer
- 3.8
- Examples: dragging a file onto the view opened by:
- 3.8
- *Filer_OpenDir printer: will spool it to the printer
- 3.8
- *Filer_OpenDir vdu: will send it to the vdu driver (try it with a text
- file)
- 3.8
- *Filer_OpenDir null: <shift> dragging will ‘move’ a file to null: i.e.
- delete it
- 3.8
- • FormEd Update − Users who have downloaded the !FormEd template
- editor from Acorn’s SID board (also available on shareware disc 20)
- might like to know how to put back the ‘sprite routines’.
- 3.8
- The version of !FormEd refered to has a !Help file stating a date of 16-
- May-89, and a ReadMe file stating version 1.00, but shows version 1.01
- and date of 23-May-89 in its Info window. The ReadMe file shows that
- this is an unsupported Acorn application.
- 3.8
- The !Help file states ‘Some previous versions of FormEd used to provide
- facilities for editing sprites. These are now provided only in the
- !Paint application’, also that when a sprite file is dragged onto the
- FormEd icon on the iconbar, a window will display the sprites. In the
- supplied state, no window is opened and you do not know what your sprite
- names are, or even if you have loaded the correct file, until you define
- an icon as a named sprite which you hope is in the file!
- 3.8
- I was having problems with not enough memory on a 1Meg machine for
- !Paint, !FormEd, the sprite files and the templates being built. (It IS
- possible with very careful setting of the ’Free’ and ‘Next’ bars in the
- Task Manager, but you can’t have any printer drivers etc). An examina
- tion of the !FormEd reveal-ed that by removing the REM statements from
- just 2 lines the sprite routines were again available.
- 3.8
- Load the !RunImage for !FormEd and LIST lines 2270 and 3080. Edit those
- lines to remove the REM before PROCspriteinfo in each, so that the lines
- are as shown below:
- 3.8
- 2270 WHEN &FF9:PROCloadsprites (f$)
- 3.8
- :PROCspriteinfo
- 3.8
- 3080 PROCloadsprites(FNstring0(q%
- 3.8
- +44)):PROCspriteinfo
- 3.8
- Save the file back to the disk. When a sprite file is dragged to the
- FormEd icon, a sprite window is shown and the sprite editing routines
- appear to work OK (although !Paint is more powerful). Douglas Potter
- 3.8
- • GraphBox − Maybe this is an obvious point to some users but it took
- me a while to discover. Graphs imported into !Draw can be disassembled
- to a remarkable degree (using ungroup) right down to facets of
- individual 3D bars. This allows extensive re-orienting, re-colouring
- options which can avoid some of the problems with dark colours and
- overlaps when colour printing on a dot matrix printer. John Wann
- 3.8
- • Hardware developer’s tool − On the monthly program disk is a utility
- (‘SVCBAS’) which is very useful for hardware developers. It patches
- BASIC so that memory indirection operators (? and !) operate in
- supervisor mode. This allows quick ‘tweaking’ of hardware devices while
- testing. Documentation is minimal, since those who are likely to need it
- should not need any! Mike Harrison.
- 3.8
- • Maestro − There are (I think!) several errors in the description of
- the !Maestro file format on pages 1809 to 1813 of the PRM:
- 3.8
- a) in the ‘Music data’ the number of bytes of gate data is given, not
- the number of gates as the PRM says
- 3.8
- b) the number of bytes of gate data is preceded by &40
- 3.8
- c) each of the next eight words (which give the length in bytes of the
- queues of note/rest data for the eight channels) is also preceded by &40
- 3.8
- d) in the ‘Stave data’, the number of music staves is reduced by 1
- (i.e. if there are 4 music staves this is recorded as 3)
- 3.8
- e) in the descriptions of the ‘Gate Attributes’, the binary represen
- tations of the bottom few bits of each byte are given with the least
- significant bit first. Thus where the ‘Clef’ description says “Bits 0 −
- 2 : 001 binary” it means that bits 0 and 1 are 0 and bit 2 is 1.
- 3.8
- f) within the ‘Clef’ attribute data, the stave number (minus 1) is
- given in bits 6 and 7, not bits 5 and 6. Hugh Eagle
- 3.8
- • Problems with an Epson LQ1050? When printing from Impression, !Draw,
- etc using the !PrinterDM application, the 360 x 360 dpi mode may cause
- spurious characters to be printed, which results in a poor quality
- printout. The reason for this is that the firmware in the Epson printer
- does not support the [Esc]+ control sequence which is nec-essary to set
- a line feed of 1/360th of an inch. In order to get this option working
- you will need a new version of the printer’s ROM. This can be purch-ased
- from Applied Technology Ltd. David Crofts
- 3.8
- • Re-inking your ink-cartridge − It is possible to re-ink an ink-
- cartridge for an HP-Deskjet Plus printer and probably other inkjet
- printers by buying one of the inks listed below and then using a syringe
- to insert the ink through a hole on the top of the cartridge. (a)
- Fountain pen ink (Pelikan), (b) Diadye ink (photo-shop), (c) Rotring
- air-brush ink. Tony Hopstaken
- 3.8
- • Rotor passwords − Lee Thake has sent in the passwords for Rotor, but
- in case you would rather not know, here they are in very simple coded
- form so that once you have the first password, you will be able to work
- out the others. QJU, HBH, MJQ, TMZ, NFX, BXF, UOU, FOE.
- 3.8
- • Sparkplug − We have a lot of questions about how to decompress
- programs such as PCDir which appear on our program and Shareware discs.
- Let me try to explain in more detail.
- 3.8
- The reason the programs are compacted is that there would not be enough
- room on the disc for the uncompacted version. Thus, if you are to uncom-
- pact them, you need to do so onto another (prefer-ably blank) disc. If
- you have two drives or a hard disc on your computer, the job is easier
- then if you are trying to do it on a single drive, so I will do it the
- hard way first.
- 3.8
- Insert a blank disc in the drive and open its filer window. Remove this
- disc and insert the Program Disc (or Shareware disc, or whatever) in the
- drive and open its filer window. If you have not already done so,
- install !sparkplug onto the icon bar by double-clicking on it. Drag the
- icon of the program to be decompacted onto the !sparkplug icon on the
- icon bar. A pseudo-filer window opens. Drag the icon or icons from there
- into the filer window of the blank disc. You will be prompted to insert
- that disc into the drive and will probably then have to keep swapping
- the discs over as prompted until all of the compacted files and folders
- have been uncom-pacted and copied across onto the other disc. This may
- actually require quite a number of repetitions, so it may be better to
- create as large a ram disc as possible and drag the files from the
- !Sparkplug filer window onto the ram disc then change discs and copy
- back from the ram disc to the blank disc. This, of course, will not work
- if you cannot make a ram disc big enough to accommodate the uncompacted
- files.
- 3.8
- If you have two discs, simply put the program disc in one drive and the
- blank disc in the other. Proceed as above, except that you will not be
- prompted to change discs since both are accessible to the computer at
- the same time.
- 3.8
- • Too many fonts − If you have too many anti-aliased fonts, !Edit will
- crash with a ‘Fatal internal error type=5’. So those of you who are
- purchasing the new onslaught of outline fonts should not put them all
- into one !Fonts directory.
- 3.8
- • VIDC parameters − On the monthly program disk is a text file of all
- the VIDC and VDU para-meters for the standard screen modes. This makes
- life a lot easier when defining your own modes, especially without the
- aid of an oscilloscope to monitor the video waveform, and a VIDC data-
- sheet. It’s much easier to tweak the existing num-bers than to work them
- out from scratch! Mike Harrison.
- 3.8
- • Wimp programming − If you get unexpected messages such as “Too many
- nested structures” when running a BASIC program in a Desktop application
- it may be simply because you have failed to allocate a large enough
- Wimpslot. Hugh Eagle
- 3.8
- • Z88 file transfer − The Z88 can save files to disc. Ranger sell a
- battery powered disc drive which reads and writes 3.5“ discs in 720k
- MSDOS format. The trouble is it costs as much as the Z88.
- 3.8
- The Z88 does not insist on sending a line feed, see Printered.
- 3.8
- Since the Z88 serial port uses XOn/XOff by default, a three wire serial
- lead will suffice if the Archim-edes is using similar software. Be sure
- to short other handshaking lines. The simplest method of sending data to
- the Archimedes is to use:
- 3.8
- *SPOOL file
- 3.8
- *FX21,1
- 3.8
- *FX2,1
- 3.8
- and just print from the Z88. Make sure the last lines in the file being
- printed have *SPOOL *FX 2,0.
- 3.8
- The next stage up is to use a communications pack-age such as Hearsay
- and the Filer to send or receive files. There is a nice routine on the
- Data Store utilities disc which does the job using the Filer.
- 3.8
- Lastly the best way of transferring data is to use the PCLink ROM and
- the Z88 filer that comes with Pipedream. Unfortunately PCLink comes with
- a Z88 to PC cable so some soldering is still required. Data transfer
- with PCLink is unnecessarily slow, a version of Kermit would have been
- more use and faster. Bruce Edelsten
- 3.8
- (How about using the Archimedes-Z88 link that we supply for £35? Ed.)
- 3.8
-
- 3.9
- • Clear a line − To clear a text input in an editable field, press
- <ctrl-U>. For example, you can use this to clear the filename before
- typing a new entry. Philip Armstrong
- 3.9
- • !Draw − Someone mentioned converting sprite images to object
- orientated !Draw images. I have used a graph program and converted the
- sprite it created to a !Draw file by zooming up and drawing over the
- sprite. If you keep to, say, the bottom left of each pixel, it works OK
- and gives a much better printed image.
- 3.9
- To get vertical and horizontal lines, use the edit coordinated facility.
- Get one end correct then note its x or y location and then edit the
- other end to match it.
- 3.9
- If you have typed some incorrect text into a draw file, for example ‘Fig
- 4.5’ needs to be changed to ‘Fig 4.6’, then you would normally have to
- re-type the line and be careful to locate it in the same place. If
- characters are changed leaving the string length the same then you could
- use !Edit to search and replace the text, once the draw file has been
- dragged onto the !Edit icon. Strings could also be padded out with
- spaces if a shorter replace string is required, but for a longer string
- it is usually easier to re-type in !Draw. Philip Armstrong
- 3.9
- • DXF files − Inclusion of a 41 group in TEXT entities permits
- characters with varying aspect ratios. A value of 0.5 matches the system
- fonts. Jim Markland.
- 3.9
- • Elektor sound sampler − In December’s issue of the Netherlands
- edition of Elektor (November in the U.K. edition) they published a
- D.I.Y. sound sampler podule. This podule has been built freq-uently but
- there is one small problem. There are no commands provided to use the
- sampler so it is difficult to use it in your own software. I decided
- therefore to write a module.
- 3.9
- The module makes use of a timer within the 6522 on the board. This
- results in a very accurate sample-time. To make use of the module, you
- need to set a jumper on the podule which connects the 6522-IRQ-line to
- the FIQ-line of the Archimedes.
- 3.9
- Holding the podule with the 64-way-connector towards you and the print
- header at the right, you can place the jumper vertically at the right
- bottom of the print header.
- 3.9
- Now you can use the module. There is a SWI included:
- 3.9
- ElektorSampler_Sample (&500)
- 3.9
- R0 = Start address of the sample buffer
- 3.9
- R1 = End address of the sample buffer
- 3.9
- R2 = Sample time in µs
- 3.9
- R3 = Minimum level to start sampling
- 3.9
- R4 : bit 0: This bit defines the quality of the sample. Low quality
- sampling must be used unless you are prepared to allow the screen to be
- disabled. 0 = high quality sampling, 1 = low quality sampling.
- 3.9
- bit 1: This bit defines whether the low order byte of the address
- where the sample is written to, must be placed on the userport or not.
- This enables you to take multi-channel samples (e.g. stereo) using an
- analogue multiplexer (e.g. HEF 4051). When you’re not using this option,
- leave the bit ‘0’. 0 = no output to the userport, 1 = output to the
- userport
- 3.9
- Leave unused bits ‘0’ for upward compatibility
- 3.9
- After calling this SWI, the screen will be disabled during the sampling.
- While waiting for the minimum level, the border will be coloured yellow
- − whilst sampling, the border will be red. As long as the border is
- yellow, you can quit by pressing <escape>. The buffer will be filled
- with linear 8-bit signed numbers.
- 3.9
- The minimum sample-time that can be used on a normal Archimedes is about
- 9 µs. The minimum sample-time that can be used with the ZN427 (the ADC)
- is approx. 12 µs.
- 3.9
- The module could be used with the Armadeus sampler if Armadeus software
- were suitably modified. Since Armadeus is written in BASIC this should
- be possible.
- 3.9
- As far as I’m concerned this module may be copied freely provided that
- my name, as author, remains within the software.
- 3.9
- Questions or suggestions? You can contact me via Archive.
- 3.9
- To conserve space, we have stripped the comments out of this listing.
- The full commented listing is available on the monthly program disc.
- 3.9
- 10 REM >SamplerSrc
- 3.9
- 20 REM Written by J.P.Hendrix
- 3.9
- 30 start=4:end=10:speed=9:ioc=8
- 3.9
- :rd427=5:wr427=6:bs6522=7:level=11
- 3.9
- :flags=12
- 3.9
- 40 DIM Code 1000
- 3.9
- 50 FOR Pass=4 TO 7 STEP 3
- 3.9
- 60 P%=0
- 3.9
- 70 O%=Code
- 3.9
- 80 [ OPT Pass
- 3.9
- 90 EQUD 0
- 3.9
- 100 EQUD 0
- 3.9
- 110 EQUD 0
- 3.9
- 120 EQUD 0
- 3.9
- 130 EQUD Title
- 3.9
- 140 EQUD Help
- 3.9
- 150 EQUD 0
- 3.9
- 160 EQUD &500
- 3.9
- 170 EQUD Handler
- 3.9
- 180 EQUD Table
- 3.9
- 190 EQUD 0
- 3.9
- 200
- 3.9
- 210 EQUS “Elektor Sampler
- 3.9
- Module 1.03 (c) copyright
- 3.9
- 22 Apr 1990 by J.P. Hendrix“
- 3.9
- 220
- 3.9
- 230 .YelBorder
- 3.9
- 240 EQUB 0
- 3.9
- 250 EQUB 24
- 3.9
- 260 EQUB 255
- 3.9
- 270 EQUB 255
- 3.9
- 280 EQUB 0
- 3.9
- 290 ALIGN
- 3.9
- 300
- 3.9
- 310
- 3.9
- 320 .Handler
- 3.9
- 330 STMFD R13!,{r0-r12 ,R14}
- 3.9
- 340 CMP R11,#&00
- 3.9
- 350 BNE UnknownSWI
- 3.9
- 360 MOV flags,R4
- 3.9
- 370 MOV start,R0
- 3.9
- 380 MOV end,R1
- 3.9
- 390 MOV speed,R2,LSL #1
- 3.9
- 400 SUB speed,speed,#2
- 3.9
- 410 AND level,R3,#&7F
- 3.9
- 420 STMFD R13!,*{t ,end,speed}
- 3.9
- 430 SWI “I/O_Podule_Hardware”
- 3.9
- 440 BIC R0,R1,#&00FF0000
- 3.9
- 450 ORR wr427,R0,#%000<<11
- 3.9
- 460 ORR rd427,R0,#%010<<11
- 3.9
- 470 ORR bs6522,R1,#%101<<11
- 3.9
- 480 MOV ioc,#&3200000
- 3.9
- 490 STMFD R13!,{wr427 ,rd427,
- 3.9
- bs6522,ioc}
- 3.9
- 500
- 3.9
- 510 MOV R0,#0
- 3.9
- 520 MOV R1,#3072
- 3.9
- 530 TST flags,#1
- 3.9
- 540 SWIEQ “XOS_UpdateMEMC”
- 3.9
- 550
- 3.9
- 560 MOV R0,#0
- 3.9
- 570 MOV R1,#24
- 3.9
- 580 SWI “OS_ReadPalette”
- 3.9
- 590 ADR R0,OrgColour
- 3.9
- 600 MOV R2,R2,LSR #8
- 3.9
- 610 STRB R2,[R0,#2]!
- 3.9
- 620 MOV R2,R2,LSR #8
- 3.9
- 630 STRB R2,[R0,#1]!
- 3.9
- 640 MOV R2,R2,LSR #8
- 3.9
- 650 STRB R2,[R0,#1]!
- 3.9
- 660
- 3.9
- 670 MOV R0,#12
- 3.9
- 680 ADR R1,YelBorder
- 3.9
- 690 SWIEQ “OS_Word”
- 3.9
- 700
- 3.9
- 710 MOV R1,#&0C
- 3.9
- 720 SWI “OS_ServiceCall”
- 3.9
- 730
- 3.9
- 740 LDMFD R13!,{wr427 ,rd427,
- 3.9
- bs6522,ioc}
- 3.9
- 750
- 3.9
- 760 MOV R0,#&00
- 3.9
- 770 STRB R0,[ioc,#&38]
- 3.9
- 780
- 3.9
- 790
- 3.9
- 800 MOV R0,#SamplerEnd-
- 3.9
- SamplerBegin
- 3.9
- 810 MOV R1,#&1C
- 3.9
- 820 ADR R2,SamplerBegin
- 3.9
- 830 .PokeLoop
- 3.9
- 840 LDR R3,[R2,R0]
- 3.9
- 850 STR R3,[R1,R0]
- 3.9
- 860 SUBS R0,R0,#4
- 3.9
- 870 BPL PokeLoop
- 3.9
- 880
- 3.9
- 890 LDMFD R13!,*{t ,end,speed}
- 3.9
- 900
- 3.9
- 910
- 3.9
- 920 TST flags,#2
- 3.9
- 930 MOV R0,#255
- 3.9
- 940 MOVEQ R0,#0
- 3.9
- 950 STRB R0,[bs6522,#02*4]
- 3.9
- 960 AND R0,speed,#&FF
- 3.9
- 970 STRB R0,[bs6522,#06*4]
- 3.9
- 980 MOV R0,speed,LSR #8
- 3.9
- 990 STRB R0,[bs6522,#07*4]
- 3.9
- 1000 MOV R0,#&40
- 3.9
- 1010 STRB R0,[bs6522,#11*4]
- 3.9
- 1020 MOV R0,#&00
- 3.9
- 1030 STRB R0,[bs6522,#13*4]
- 3.9
- 1040 MOV R0,#&C0
- 3.9
- 1050 STRB R0,[bs6522,#14*4]
- 3.9
- 1060 AND R0,speed,#&FF
- 3.9
- 1070 STRB R0,[bs6522,#04*4]
- 3.9
- 1080
- 3.9
- 1090 STRB R0,[wr427]
- 3.9
- 1100 .WaitLevel
- 3.9
- 1110 SWI “OS_ReadEscapeState”
- 3.9
- 1120 BCS Exit
- 3.9
- 1130
- 3.9
- 1140 LDRB R0,[rd427]
- 3.9
- 1150 STRB R0,[wr427]
- 3.9
- 1160 TST R0,#&80
- 3.9
- 1170 RSBEQ R0,R0,#&100
- 3.9
- 1180 AND R0,R0,#&7F
- 3.9
- 1190 CMP level,R0
- 3.9
- 1200 BHI WaitLevel
- 3.9
- 1210 STRB R0,[wr427]
- 3.9
- 1220
- 3.9
- 1230 SWI “OS_IntOff”
- 3.9
- 1240
- 3.9
- 1250 TST flags,#1
- 3.9
- 1260 MOV R0,#12
- 3.9
- 1270 ADR R1,RedBorder
- 3.9
- 1280 SWIEQ “OS_Word”
- 3.9
- 1290
- 3.9
- 1300 MOV R0,speed,LSR #8
- 3.9
- 1310 STRB R0,[bs6522,#05*4]
- 3.9
- 1320
- 3.9
- 1330 MOV R0,#&40
- 3.9
- 1340 STRB R0,[ioc,#&38]
- 3.9
- 1350 .SampleLoop
- 3.9
- 1360 CMP end,start
- 3.9
- 1370 BPL SampleLoop
- 3.9
- 1380
- 3.9
- 1390 MOV R0,#&00
- 3.9
- 1400 STRB R0,[ioc,#&38]
- 3.9
- 1410 .Exit
- 3.9
- 1420 MOV R0,#&7F
- 3.9
- 1430 STRB R0,[bs6522,#14*4]
- 3.9
- 1440 MOV R0,#&00
- 3.9
- 1450 STRB R0,[bs6522,#13*4]
- 3.9
- 1460
- 3.9
- 1470 MOV R1,#&0B
- 3.9
- 1480 SWI “OS_ServiceCall”
- 3.9
- 1490 SWI “OS_IntOn”
- 3.9
- 1500
- 3.9
- 1510 MOV R0,#0
- 3.9
- 1520 STRB R0,[bs6522,#02*4]
- 3.9
- 1530
- 3.9
- 1540 MOV R0,#3072
- 3.9
- 1550 MOV R1,#3072
- 3.9
- 1560 TST flags,#1
- 3.9
- 1570 SWIEQ “OS_UpdateMEMC”
- 3.9
- 1580
- 3.9
- 1590 MOV R0,#12
- 3.9
- 1600 ADR R1,OrgColour
- 3.9
- 1610 SWIEQ “OS_Word”
- 3.9
- 1620
- 3.9
- 1630 MOV R0,#124
- 3.9
- 1640 SWI “OS_Byte”
- 3.9
- 1650
- 3.9
- 1660 LDMFD R13!,{r0-r12 ,PC}^
- 3.9
- 1670
- 3.9
- 1680 .UnknownSWI
- 3.9
- 1690 LDMFD R13!,{r0-r12 ,R14}
- 3.9
- 1700 ADR R0,Error
- 3.9
- 1710 ORRS PC,R14,#2^28
- 3.9
- 1720
- 3.9
- 1730 .SamplerBegin
- 3.9
- 1740 STRB start,[bs6522,#00*4]
- 3.9
- 1750 LDRB R0,[rd427]
- 3.9
- 1760 EOR R0,R0,#&80
- 3.9
- 1770 STRB R0,[start],#1
- 3.9
- 1780 MOV R0,#&C0
- 3.9
- 1790 STRB R0,[bs6522,#13*4]
- 3.9
- 1800 STRB R0,[wr427]
- 3.9
- 1810 SUBS PC,R14,#4
- 3.9
- 1820 .SamplerEnd
- 3.9
- 1830
- 3.9
- 1840 .OrgColour
- 3.9
- 1850 EQUB 0
- 3.9
- 1860 EQUB 24
- 3.9
- 1870 EQUB 0
- 3.9
- 1880 EQUB 0
- 3.9
- 1890 EQUB 0
- 3.9
- 1900 .RedBorder
- 3.9
- 1910 EQUB 0
- 3.9
- 1920 EQUB 24
- 3.9
- 1930 EQUB 255
- 3.9
- 1940 EQUB 0
- 3.9
- 1950 EQUB 0
- 3.9
- 1960
- 3.9
- 1970 .Table
- 3.9
- 1980 .Title EQUS “ElektorSampler”
- 3.9
- +CHR$(0)
- 3.9
- 1990 EQUS “Sample”+CHR$(0)
- 3.9
- +CHR$(0)
- 3.9
- 2000 .Help
- 3.9
- 2010 EQUS “Elektor Sampler”+CHR$
- 3.9
- (9)+“1.03 (22 Apr 1990)”+CHR$(0)
- 3.9
- 2020 .Error
- 3.9
- 2030 EQUD 1
- 3.9
- 2040 EQUS “Unknown Sampler SWI”
- 3.9
- +CHR$(0)
- 3.9
- 2050 ]
- 3.9
- 2060 NEXT
- 3.9
- 2070
- 3.9
- 2080 SYS “OS_File”,10,“ElektorSam”
- 3.9
- ,&FFA,,Code,O%
- 3.9
- • Extra Speed in high res modes − You can use SWI “OS_UpdateMEMC” to
- deny VIDC DMA access to the video RAM, which returns to the processor
- the bus bandwidth that was being used by the video system. Turning off
- VIDC’s access to the memory blanks the screen but makes the machine go
- faster even than in MODE 0. To kill VIDC’s access to memory: SYS
- “OS_UpdateMEMC”,0, 1024 To re-enable access use SYS “OS_Update
- MEMC”,1024,1024.
- 3.9
- While the screen is thus disabled, you can still write to it as normal
- and the results will be there when it is switched back on. This short
- program shows the enormous speed gains possible (49% in MODE 15, 120% in
- MODE 24) − it can reduce by a third, the time taken for a MODE 15 ray
- trace. Sean Kelly
- 3.9
- 10 mode=MODE
- 3.9
- 20 MODE 0
- 3.9
- 30 I%=0: T%=TIME
- 3.9
- 40 REPEAT: I%+=1: UNTIL TIME>=T%+100
- 3.9
- 50 MODE mode
- 3.9
- 60 J%=0: T%=TIME
- 3.9
- 70 REPEAT: J%+=1: UNTIL TIME>=T%+100
- 3.9
- 80 SYS “OS_UpdateMEMC”,0,1<<10
- 3.9
- 90 K%=0: T%=TIME
- 3.9
- 100 REPEAT: K%+=1: UNTIL TIME>=T%+100
- 3.9
- 110 SYS “OS_UpdateMEMC”,1<<10,1<<10
- 3.9
- 120 PRINT‘“Loops per second:”’
- 3.9
- 130 PRINT“Normal mode 0 ”;I%
- 3.9
- 140 PRINT“Normal mode ”;mode;“ ”;J%
- 3.9
- 150 PRINT“Blanked mode ”;mode;“ ”;K%
- 3.9
- 160 PRINT“Speed up ”;(K%-J%)/J%*100
- 3.9
- ;“%”
- 3.9
- • FormEd − I was very interested to see the tip on !FormEd in the May
- issue of Archive which really does make it easier to use. However, there
- is a slight snag with it as published as it is possible to close the
- sprite viewing window which cannot then be re-opened. Also, it is
- possible to activate the ‘Tool’ window which allows editing of the
- sprites if the following changes are made to the !RunImage file.
- 3.9
- 1890 DATA “Load templates>m_templates%
- 3.9
- ,Save templates>m_Savetemp%, Show Sprites, Show Toolbox#, Quit“
- 3.9
- 3090 ELSE PROCmergesprites (FNstring0
- 3.9
- (q%+44)):PROCspriteinfo
- 3.9
- 9781 WHEN 4 : PROCspriteinfo
- 3.9
- 9782 WHEN 5 : PROCencodepal (0,15) :
- 3.9
- PROCfront (palette%) : PROChtpal
- 3.9
- 9790 WHEN 6 : PROCfinish : END
- 3.9
- Line 1890 adds two new options to the iconbar menu (‘Show Sprites’ and
- ‘Show Toolbox’). Line 3090 has the REM removed which allows merging of
- sprite files. Lines 9781 and 9782 are new and implement the opening of
- the sprite and tool win-dows. Line 9790 needs changing as ‘Quit’ is now
- the sixth item on the menu.
- 3.9
- Some of the sprite editing routines seem to be miss-ing from the
- !RunImage file (such as the ‘spray can’) so I just created a new blank
- sprite and altered the template file so that the non-working options
- don’t appear!
- 3.9
- As noted in the magazine, !Paint is better for creating sprites but
- these simple changes make !FormEd much more useful. One benefit is that
- the sprites edited in !FormEd are displayed in the windows where they
- will actually appear when the application runs. Paul Hobbs
- 3.9
- • Function key strips − In the past, many have tried to write a
- program which generates one or more function key-strips. In most cases,
- the graph-ics were not quite satisfying. When using MS-DOS software, the
- problem arises that you really need four rows (instead of the standard
- three) to cater for all possibilities: F-key, <shift-F-key>, <ctrl-F-
- key> and <alt-F-key>. To solve this problem I have made two draw-files,
- one for a 3-row function key-strip and one for a 4-row function key-
- strip.
- 3.9
- Both files require the presence of the font ‘Hom-erton.Medium’.
- 3.9
- As an example, I have made a function key-strip for the MS-DOS program
- WordPerfect version 4.2. This file also requires the presence of the
- font ‘Cor-pus.Medium’.
- 3.9
- From where I stand, I find the result of the Drawfiles better than what
- I’ve seen so far. (Available on the monthly program disc.) Maurice
- Hendrix
- 3.9
- • Hard disc and memory usage − I was interested to read about module
- killing in your First Word Plus column. I have a 1Mb machine and need
- all the memory I can get, so I have already experimented with simple
- module killing routines.
- 3.9
- Firstly, I altered all my !run files to keep track of Clib, FPE and the
- other common modules and kill them if they are no longer needed. This
- used a sys-tem variable for each module that stored the number of
- applications using it. This worked but had several drawbacks. The
- changing of all !run files did take a lot of work and each application
- left open its !run file until it was quit. As a result, I decided that
- man-ual module killing or Resetting is a better solution. One interest
- ing point highlighted by this, is that !Edit suffers a fatal error and
- all work is lost if the FPE is killed even though it does not need it!
- 3.9
- The one thing that I have found extremely useful is the setting up of a
- good hard disc structure and a !boot file. This has saved memory both on
- the disc due to duplication and when loading applications due to fewer
- icons needed to be loaded. It has also given me quicker and easier
- access to programs via the new task option.
- 3.9
- One thing that should be noted by hard disc users is that although
- directories allow a nice structure, they do use memory and also slow the
- access to certain parts of the disc, so don’t go overboard creating
- directories for everything.
- 3.9
- I will try to explain the structure of my hard disc. I have in my root
- directory the following directories and a !boot file.
- 3.9
- !fonts Outline Fonts
- 3.9
- !system System Modules
- 3.9
- Art Artisan, !Paint etc
- 3.9
- Cad !Draw etc
- 3.9
- Games !Triv etc
- 3.9
- Library Command line programs
- 3.9
- Misc My working directory
- 3.9
- Text/DTP !Edit, !Impress, !PrinterDM etc
- 3.9
- Utilities !FormEd, !Hand, !Configure etc
- 3.9
- Others could include Sound, spreadsheets and lang-uages etc. Try to keep
- associated programs together but don’t have directories with lots of
- applications as all the icons are loaded and waste memory. Keep commonly
- used programs one level down and others in sub directories. This is
- especially true for the utilities directory.
- 3.9
- The next stage is to move all the commonly used modules into the
- !system.modules directory. This avoids duplication, ensures a module
- update is used by all programs and also simplifies things. The most
- common modules found are FPEmulator and Clib. Well-written programs will
- already use !System but some don’t and they will need their !run files
- mod-ified. The rmload commands need to load from :4.$. !system.modules.
- If the !run file does not contain the rmload commands it is probably
- best to leave its modules where they are unless you know what you are
- doing. Finding modules can be done using simple utilities such as !hand
- (helping hand) from the Data Store to search for the file type &FFA.
- 3.9
- Probably the most important part of a good hard disc setup is its !boot
- file. This gives the user an ideal chance to customise their system. My
- !boot file shown below sets up various system variables that perform a
- range of functions.
- 3.9
- | !Boot file for hard disc
- 3.9
- | Set variables for directory abbrevs
- 3.9
- Set r adfs::BigHardNo1.$.
- 3.9
- SetMacro u <r>Utilities.
- 3.9
- SetMacro a <r>ART.
- 3.9
- SetMacro d <r>Text/DTP.
- 3.9
- SetMacro g <r>GAMES.
- 3.9
- SetMacro System$Path <r>!System.
- 3.9
- SetMacro sm <r>!System.Modules
- 3.9
- | Set Alias to emulate two common
- 3.9
- Unix commands
- 3.9
- Set Alias$LS Cat %0
- 3.9
- Set Alias$CD Dir %0
- 3.9
- | Setup directories to be searched
- 3.9
- for a run command (using abbreviations to keep line
- 3.9
- to <255 chars )
- 3.9
- SetMacro Run$Path ,%.,<sm>.,<r>L*.,
- 3.9
- <d>1*.,<r>CA*.,<a>,<d>,<r>M*.,
- 3.9
- <d>PI*.,<r>PC.,<u>,<u>CT*.,<u>F*.,
- 3.9
- <u>A*.,<u>B*.,<u>C*.,<u>D*.,
- 3.9
- <u>FO*.,<u>L*.,<u>T*.,<u>M*.,<r>T*.,
- 3.9
- <r>S*.,<g>I*.,<g>B*.,<g>A*.,<d>!i*.
- 3.9
- | Setup directories to be searched
- 3.9
- for a load command (using abbreviations to keep line
- 3.9
- to <255 chars )
- 3.9
- Setmacro File$Path ,%.,<sm>.,
- 3.9
- <r>Library.,<u>L*.,<d>!i*.
- 3.9
- | run common applications !boot files
- 3.9
- to emulate the system seeing the application without cluttering
- 3.9
- the $ dir.
- 3.9
- <a>!Draw.!Boot
- 3.9
- <a>!Paint.!Boot
- 3.9
- <d>!Edit.!Boot
- 3.9
- <d>!Impress.!Boot
- 3.9
- <u>FILES.!SPARK.!BOOT
- 3.9
- | set any commonly used key strings
- 3.9
- Key 1 *DESKTOP|M
- 3.9
- Key 2 EDIT|M
- 3.9
- | run desktop and display root directory
- 3.9
- Desktop Filer_OpenDir adfs::BigHardNo1.$
- 3.9
- The !boot file starts by defining a series of system variables that are
- to be used throughout the file. They include abbreviated variables to
- represent commonly used pathnames. System$Path is also defined here.
- 3.9
- The next section defines two alias’s that emulate common Unix system
- commands. This is only of use if you switch operating systems commonly
- and tend to accidentally type in the wrong commands. A similar set could
- also be set up for PC users although a clash of the “dir” command would
- occur.
- 3.9
- The next two sections are similar and set up the vari-ables Run$Path and
- File$Path. Firstly, Run$Path can be used to define all the directories
- that you wish to be searched when a run program command is issued.
- Similarly File$Path does the same for loading files. They both include
- the first path which refers to the current directory.
- 3.9
- The system variables defined at the start have been used extensively and
- the * wildcard to keep the line shorter than the 255 character maximum.
- Be careful when using wildcards because a new directory could also match
- the search instead of the intended directory. As an alternative to this,
- a series of paths could be placed into system variables i.e. Run1$ Path,
- Run2$Path etc and then added together to give the complete Run$Path. Be
- careful when using sys-tem variables to get the correct punctuation.
- Each path must end with a full stop “.” although this can been included
- at the end of the system variables.
- 3.9
- The main reason for doing this is to allow the user to use the “New
- Task” option of the task menu. If all the directories are correctly
- listed in this section, you will be able to enter “!Edit” into the “New
- Task” option and the program will install itself onto the icon bar. This
- eliminates the need to know where in the directory structure it is. The
- same goes for loading a program or module. You can now tuck away those
- little used programs and still call them up as long as you know their
- name. The general effect is the same as if everything is in the library
- although loading commands can also be used.
- 3.9
- I have found it useful to emulate the system seeing commonly used
- applications such as !Draw, !Paint and !Edit. To do this all you must do
- is run each application’s !boot file. This will setup all the icons and
- system variables. This means that, for example, a draw file can be
- loaded without the application having being seen.
- 3.9
- A Hard disc !boot file is also the ideal place to set up any commonly
- used key strings as well as loading any important modules.
- 3.9
- Finally, the desktop can be called and I find it useful to open up the
- root directory. This can be done by the Filer_OpenDir command. Alterna
- tively, another obey file can be run after the desktop has been entered
- by the use of the -file option. If this is the case, it may be useful to
- create an application called !boot and rename the !boot file to !run.
- The second obey file can then be hidden inside this directory.
- 3.9
- To create and set up the !boot fileÉ (1) Run !Edit (2) Create obey file
- (icon menu) (3) Type in !boot data (See above) (4) Save as !boot (in
- root directory) (5) Press <f12> and type
- 3.9
- OPT4,2
- 3.9
- Configure drive 4
- 3.9
- Configure boot
- 3.9
- Philip Armstrong
- 3.9
- • Hourglass − A quick hint for those writing a BASIC program using the
- Hourglass. Often, if an error is generated from BASIC when the hourglass
- is being used, it stays on the screen. This can be cured by
- SYS“Hourglass_Smash” or, if you have already done your error checking,
- SYS“” causes a system error which has the same effect. Philip Armstrong
- 3.9
- • INKEY problems − If you have a loop which executes continuously and
- rapidly, you might want to use:
- 3.9
- key%=INKEY(0):IF key%=64
- 3.9
- PROC_Fred ELSE IF
- 3.9
- key%=65 PROC_Edith
- 3.9
- to detect a keypress. However, remember that you should have only one
- such INKEY statement in the loop even if you want to cater for many
- different key presses because a single keypress can only be det-ected by
- one INKEY(0) instruction. Steve Kirkby.
- 3.9
- • Keyboard cleaning (A300/400 series) − The keyboard that is supplied
- with the computer is of the open Printed Circuit Board type. That is, a
- conduc-tive film on the base of each key makes contact with large solder
- plated areas called lands on the main PCB. This makes for a cheap and
- reliable keyboard but it does have its problems because of its exposure
- to the air in that dust can and does get in.
- 3.9
- I’ve had my Archimedes A310 for over 2 years now and my wife lets it
- live in the living room with us. I suppose I should keep the keyboard
- covered with something when not in use but I’ve never got round to doing
- this. Consequently, the keyboard has had to put up with me eating
- biscuits, sandwiches and other unmentionables while typing. I suppose
- the inevitable had to happen and one day the keyboard rebelled! I had
- began to noticed over a period of several days that the space bar and
- left cursor key where playing up until they refused to work at all. Of
- course, this happened a week after the guarantee had run out!
- 3.9
- Visions of massive bills loomed before me so I decided to undertake the
- task of opening the keyboard case and having a look! I first switched
- off the Archimedes and unplugged the keyboard cord from the computer. I
- removed the mouse and turned the keyboard face down with the Reset
- button towards me. I noted that eight large, long hex screws held the
- back section of the keyboard case on. After removing these I just lifted
- the back section away and placed it somewhere safe. The Reset button
- looked slight delicate so I removed it by simply pulling it off. I made
- a mental note of which way round it came off.
- 3.9
- I had a good look and there were seven large, short hex screws holding
- the top keyboard casing to the main PCB frame. I removed these screws
- and lifted the PCB off, putting the top casing away to another safe
- place. I was half expecting the key tops and switches to try and escape
- at this point but they are firmly attached to a metal frame!
- 3.9
- Biscuit supply − Turning the PCB over and looking at the top surface
- between the key tops I was amazed to see a surprising amount of dust and
- what looked like a secret supply of Burtons biscuits! I duly removed
- this with a dry paper towel and again placed the board face down after I
- had a good look at the electronics on the board, but I resisted the
- temptation to touch (I suggest you do the same).
- 3.9
- All that now remained to do was remove the twenty small hex screws
- holding the PCB to the switches. I started with the black screw at S94
- position (this is written on the PCB) and noted that this was the only
- small screw not actually threaded on to a switch. I removed the other
- nineteen screws and gently lifted the PCB off the metal frame holding
- the keys on.
- 3.9
- The contact plates of all the key switches where now exposed and they
- consisted of thin silver discs which when pressed make contact with the
- PCB lands and therefore closed the contacts. These plates looked
- extremely fragile but clean so I left them well alone!
- 3.9
- Cleaning − The PCB lands were dirty, especially around the Space and
- Left Cursor key positions and, being very careful not to put any grease
- from my paws onto the board, I wiped the entire PCB with a dry paper
- towel. Reassembling the keyboard was easy. I just placed the PCB face
- down on to the metal frame holding the keys and lined up the small
- screws positions. A good tip in reassembling something like this is to
- begin placing the screws in from opposite ends and not to tighten up any
- of the screws until they are all in place.
- 3.9
- Once that was done, making sure that the black screw was in the correct
- position, I placed the top section face down on the work table and
- positioned the assembly down onto it, again fitting the seven large
- short hex screws in place. I refitted the Reset moulding into place with
- a resounding click and finished off by screwing down the last eight
- large long hex screws into place. I turned the complete keyboard over
- and plugged it back into the Archimedes and I’m glad to say it works a
- treat! Stuart Halliday
- 3.9
- • OsSys module − Shortly after the release of the OsSys module, I was
- told that one couldn’t use SWI’s that needed a pointer to a buffer
- because no such facilities where made available. I argued that this was
- very easily implemented and changed the module accordingly. When doing
- this, I also noticed a minor bug in the module. When a string longer
- than 300 characters is passed, the module is supposed to generate an
- error. This works fine but, due to a problem during the development, I
- mistakenly thought that the pipeline was playing up when generating this
- error. (Not all of the error text was displayed: the first 4 characters
- were missing). I solved this by adding 4 to the PC when generating the
- error. Quite wrong of course. I discovered that not the pipeline but I
- was to blame. I had forgotten to put the error number (4 bytes) in
- before the error message.
- 3.9
- To upgrade the OsSys module to version 1.8, load the source code into
- BASIC V and change/add the following lines:
- 3.9
- 10 REM >OsSysSrc18
- 3.9
- 350 EQUS “1.80 (05 Apr 1990)”
- 3.9
- 600 MOV R3,#500
- 3.9
- 610 SWI “OS_Module”
- 3.9
- 611 ;By claiming a larger workarea than required by the
- 3.9
- 612 ;the module, you can use the top of the work area to
- 3.9
- 613 ;create workspace for SWI calls that require pointers to
- 3.9
- 614 ;such a workspace. Eg. calls to WIMP or VDU.
- 3.9
- 650 EQUS “OsSWICalls v1.80 by M. Hendrix => Installed”
- 3.9
- 2510 REM remove this line. It’s incorrect
- 3.9
- 3180 EQUD &01 ;Error number
- 3.9
- Save and run the program.
- 3.9
- The new module will claim more workspace than it actually needs. The top
- 200 bytes can thus be used for SWI buffers. You can use *MEMORYA to edit
- the buffer(s). If you need more space for a buffer just change the value
- #500 in line 600 to your desired amount of memory. (Don’t forget to add
- 300 bytes for the module itself!) Maurice Hendrix
- 3.9
- • Random number generator − If you use the use the random number
- generator (RND in BASIC), it must be initialised with something really
- random, such as the current time. Otherwise, the same num-bers will be
- produced every time the program is run. The otherwise excellent game
- !Yahtzee on Care-ware 4 suffers from this problem but it can easily be
- solved: insert the line 123 Junk = RND(-TIME) and then every game is
- different. Jonathan Puttock
- 3.9
- • The Dreaded CLI! − One of the nicest aspects about the Archimedes is
- the Configure command. This command is often forgotten about as it lies
- in that terrible place called the Command Line Interpreter (CLI)
- accessed by pressing the dreaded function 12 key. One of the many things
- that the Configure command does and seems to get lain aside is the
- WimpFlags options. This very useful command determines the action of all
- the windows used by RISC-OS in as far as it controls the two types of
- window movement, resizing and scrolling. What two types?, I hear you
- ask.
- 3.9
- Status − Well if you’ve never used the WimpFlags command before then you
- have probably put up with the kind of windows which, when you change
- their size or move them, all you get is a large dotted outline which
- turns into a solid window when you release <select> or <adjust>. Now you
- have an alternative. If you first press F12 from the Desktop and type in
- *STATUS <return> you’ll get a large list of items and near the end is a
- line Wimpflags x, this x number (it may be 0) is actually the decimal
- representative of a binary pattern of this number which switches on or
- off the various options under this command.
- 3.9
- If you type in *HELP WimpFlags <return> then the following should
- appear:
- 3.9
- *HELP WimpFlags
- 3.9
- ==> Help on keyword WimpFlags
- 3.9
- *Configure WimpFlags sets the
- 3.9
- default actions when dragging
- 3.9
- windows, as follows:
- 3.9
- bit 0 set: continuous window movement
- 3.9
- bit 1 set: continuous window resizing
- 3.9
- bit 2 set: continuous horizontal scroll
- 3.9
- bit 3 set: continuous vertical scroll
- 3.9
- bit 4 set: don’t beep when error box
- 3.9
- appears
- 3.9
- Syntax: *Configure WimpFlags <number>
- 3.9
- Simply put, if you where to type in say:
- 3.9
- *CONFIGURE WimpFlags 1 <return>
- 3.9
- and press <ctrl-break> (you need to do this each time you enter new
- values to actually change the values!) you’ll see that if you move any
- window it will be instant! If you want to try some more ‘configuring’
- try changing the WimpFlags to 2 to see only instant window resizing or 3
- for both. (Don’t forget to press <ctrl-break> afterwards!) If you do not
- like this new look, simply change Wimpflags back to 0. The next two
- options concern the scroll bars and these are really useful. If you
- change WimpFlags to 8 you’ll see that by dragging the pointer up and
- down the vertical bar you’ll get a smooth scroll effect, much better
- than constantly clicking the arrow icons! Try WimpFlags set to 4 for
- horizontal scroll or even 12 for them both at the same time.
- 3.9
- Error − The last option just stops the error box beeping at you. Try
- WimpFlags set to 16 and then Select an empty disc drive. Remember you
- can combine any of these together by simply adding their numbers
- together and configuring the WimpFlags. Try WimpFlags set to 31, this is
- my favourite! Stuart Halliday
- 3.9
-
- • Arthur Fonts − when using the FontDes program supplied with Arthur
- operating system, it is possible to vary the thickness of one or both
- ends of the line. This is achieved by using the adjust button when the
- mouse is positioned over a line in a “char full” window (this then
- highlights the line) and then pressing the menu button at either end of
- the line. This will bring up a ‘pen ratio’ window which allows you to
- alter the percentage ratio of the pen at that point, the ratio is set by
- clicking on the percentage window’s quit box.
- 3.10
-
- 3.10
- • Extra Brushes for !Paint − you can add your own brushes to the !Paint
- package by including the desired shapes in the ‘Sprites’ file i.e.
- 3.10
- (i) Open up the !Paint directory by double clicking on !Paint while
- holding the shift button down
- 3.10
- (ii) Load the ‘Sprites’ file into !Paint
- 3.10
- (iii) Create the brush shapes you want in this file
- 3.10
- (iv) Save the ‘Sprites’ file
- 3.10
- Don’t forget to make a note of the names of the brushes you created so
- that you can access them from the tools menu. David Parker
- 3.10
-
- 3.10
- • Hard Spaces can be entered using the <alt> key and typing <1><6><0> on
- the numeric keypad but a much quicker way is just to type <alt><space>.
- Charles Moire
- 3.10
-
- 3.10
- • Lightning strikes − Be warned! Don’t leave your modem connected to
- the phone line when there is an electrical storm. I did and the spikes
- that came up the phone line killed a new V22bis modem and the RS423 port
- on the Archimedes! David Leckie.
- 3.10
-
- 3.10
- • Memory Saving − It is worth remembering that sprites with masks take
- up twice as much room as those without. If all sprites are altered with
- !Paint to remove the mask, a considerable amount of memory can be saved.
- Ian Hamilton.
- 3.10
-
- 3.10
- • Printing with 1M − when using Draw, Paint, Impression, Acorn DTP, etc
- you can quit !PrinterDM (or whatever printer driver you use) to reclaim
- about 80k of RAM. It would appear that these applications only need the
- modules that remain in the RMA area after the !PrinterDM application has
- been quit so all the print options are still available. R J Denison
- 3.10
-
- 3.10
- • Wimp Window Drawing − The usual construction for defining a graphic
- window and drawing into it would look something like this:
- 3.10
- DEFPROCgraphic_window
- 3.10
- VDU26,5,24,graphicsbx%;graphicsby%;graphicstx%;graphicsty%
- 3.10
- ORIGIN reportbx%-scrollx%,reportty%-scrolly%
- 3.10
- ENDPROC
- 3.10
-
- 3.10
- DEFPROCdraw_text (x%,y%,text$)
- 3.10
- MOVE x%,y% : PRINT text$
- 3.10
- ENDPROC
- 3.10
-
- 3.10
- This will work okay until the values in the origin statement exceed
- 32767. I found that I had blank screens in the middle of large reports.
- The following changes cured the problem:
- 3.10
- DEFPROCgraphic_window
- 3.10
- VDU26,5,24,graphicsbx%;graphicsby%;graphicstx%;graphicsty%
- 3.10
- y%=reportty%-scrolly% : compensationy%=0
- 3.10
- REPEAT
- 3.10
- IF y%>32000 THEN y%-=32000 : compensationy%+=32000
- 3.10
- UNTIL y%<=32000
- 3.10
- ORIGIN reportbx%-scrollx%,y%
- 3.10
- ENDPROC
- 3.10
-
- 3.10
- DEFPROCdraw_text (x%,y%,text$)
- 3.10
- MOVE x%, y%+compensationy%: PRINT text$
- 3.10
- ENDPROC
- 3.10
- Although you would have a problem in the x-direction, it is unlikely
- that a window would be that wide. A similar change could be applied if
- this was necessary. Ian Hamilton.
- 3.10
-
- • Blanking discs − (I’m sure we’ve had this before, but not everyong has
- picked it up and I couldn’t find a reference to it in the Archive
- database.) If you have a disc that has lots of files on it and you try
- to clear them all off by deleting them, it can take ages − it would be
- quicker to reformat the disc. Even quicker though is to get an existing
- blank disc and do a backup from that to the disc to be blanked − it
- takes just a couple of seconds.
- 3.11
- • ChkSpr − In answer to Ray Dawson’s plea for help about !ChkSpr
- supplied on shareware disc 19: if you open up the !ChkSpr directory,
- amongst the files you will find one called ‘chkspr’ and one called
- !Boot‘. If these two files are copied into any Impression document
- directory and if you then rename the document directory, instead of the
- Impression sprite not appearing because the name no longer corresponds
- to the document name (as normally happens) it will appear correctly.
- This is because the chkspr utility, when run by the new !Boot file,
- checks the name of the first sprite in the sprite file and changes it if
- the name is not the same as that of the document. This utility can also
- be used to keep the correct sprites for applications. For example, when
- developing an application, different versions may be kept, all with the
- right sprite file. Simon Burrows and Emmet Spier.
- 3.11
- • ColourTrans module − I have noticed that each of the printer drivers
- on the RISC OS extras disc contain their own copy of the Colours module!
- This is at odds with the policy of storing all shared modules in the
- !System directory (you will probably already have a copy of the Colours
- module there − many applications use it).
- 3.11
- To avoid wasting disc space (though Colours uses little) you can remove
- this module from within each printer drivers’ directory and edit the
- !Run file for each driver to call Colours from the !System folder.
- 3.11
- i.e. in each !Run file the line
- 3.11
- RMEnsure ColourTrans 0.52 RMLoad <PDriver$Dir>.Colours
- 3.11
- should be replaced with
- 3.11
- RMEnsure ColourTrans 0.52 System:Modules.Colours
- 3.11
- To be even more correct two extra lines should also be added (e.g. like
- the !Spark and !Draw applications). The above on its own relies on the
- desktop having already seen your !System directory, you should therefore
- put the line
- 3.11
- If“<System$Path>” = “” Then Error 0 System resources cannot be found
- 3.11
- before the changed line above to check that this is the case. You
- should also put the line
- 3.11
- RMEnsure ColourTrans 0.52 Error You need ColourTrans 0.52 or later
- 3.11
- after the changed line − this will check that the module has been loaded
- satisfactorily.
- 3.11
- The Printer Drivers on the original RISC-OS Application Disc I did not
- load the Colours module when they were installed and so do not have this
- problem. Simon Butler.
- 3.11
- • Debugger/Dissassemble returns an incorrect length for SWI instructions
- − it returns the length as one too many − you get an extra null
- character on these instructions. As all returned strings are null
- terminated, I found it easier to scan for the null in order to find the
- length. The zero makes no difference to screen or printing, but if
- written to a text file looks ugly in !Edit. Kevin Quinn.
- 3.11
- • Desktop bug − There appears to be a fatal bug in the Window Manager of
- RISC-OS 2.00. It occurs when you drag a menu, and whilst you are
- dragging it, press the <escape> key to remove it. If you then stop
- dragging the menu, the system will report an ‘Address exception at
- &386BCIC’, the application which created the menu will die fatally and
- most often, all the other applications will die as well, resulting in
- the computer ‘bombing out’ of the desktop into the CLI. Tom Lakofski.
- 3.11
- • DXF files − Users of DXF files which are comprised only of BLOCKS and
- ENTITIES (or maybe just ENTITIES alone) will find that !Draw does not
- enable the use of its facility for specifying font types when the DXF
- file is just loaded.
- 3.11
- The inclusion of the code below (i.e. a TABLES section) appears to solve
- this problem. Of course !Draw must have previously ‘seen’ the relevant
- !Fonts directory. The full sequences for the sections, if all are
- present is HEADER followed by TABLES, then BLOCKS + ENTITIES. Jim
- Markland.
- 3.11
- 0
- 3.11
- SECTION
- 3.11
- 2
- 3.11
- TABLES
- 3.11
- 0
- 3.11
- TABLE
- 3.11
- 2
- 3.11
- STYLE
- 3.11
- 70
- 3.11
- 20
- 3.11
- 40
- 3.11
- 0
- 3.11
- 41
- 3.11
- 1
- 3.11
- 50
- 3.11
- 0
- 3.11
- 71
- 3.11
- 0
- 3.11
- 3
- 3.11
- STANDARD
- 3.11
- 0
- 3.11
- ENDTAB
- 3.11
- 0
- 3.11
- ENDSEC
- 3.11
- • Greek3 re-caching − To stop the Greek3 outline font supplied with
- Impression from recaching itself too often all you have to do is rename
- it from ‘Greek3’ to ‘Greek’. Michael Ben-Gershon.
- 3.11
- • On/Off icons, for example option icons in windows, are implemented by
- using the ‘S’ command in the validation string of an icon with
- indirected text and sprites on. FormEd will allow you to set these up −
- switch on indirected stuff, put text (if any) into the text item, and
- select sprite − don’t put anything in the sprite sub-menu writeable icon
- and put the sprite name(s) in the indirected validation string, e.g.
- ‘sopton,optoff’. Then by inverting the icon’s inverted bit it will swap
- over the icons − see the calls Wimp_SetIconState and Wimp_GetIconState
- (pages 1211-1213 of PRM). Details of validation strings are on pages
- 1184-1187 of the PRM. Kevin Quinn.
- 3.11
- • OS_Heap − While trying to use the Heap facility in RISC-OS, we found
- that OS_Heap 6, which returns the size of a heap block, returns the size
- including the word at the start containing length. This is unexpected
- given the Abstract Data Type philosophy that appears to have been used
- for the rest of the system and means that the user knows where the
- length of a block is stored and can read it without using OS_Heap 6 −
- and incidentally, means Acorn can’t rewrite their Heap manager unless
- this word is left in the same place. James Chong.
- 3.11
- • RenderBender on SCSI hard disc drives. As you will know, you cannot
- access the hard drive, by using the HARD 4 icon. Some of you may have
- already tried unsuccessfully to alter the program, by altering the
- variable HD% to 1, to try to force the program into recognising the hard
- drive. The following alterations should be made to the !Runfile, Render
- and Anirout in the utilities directory. The code will save all pictures
- to the specified directory if you have not put the Render Bender
- directory in $...
- 3.11
- For the Render program :
- 3.11
- 15 *SET RendHard1 SCSIFS::4.$.!Render
- 3.11
- 40 curd$=“4”:moder%=FALSE
- 3.11
- 15890 A%=32
- 3.11
- 15940 IF A%=32 AND HA%>0 GOTO 15920
- 3.11
- 16020 IF A%=32 THEN curd$=“4”:*SET REdrive SCSIFS::4.$.!Render
- 3.11
- For the Anirout program:
- 3.11
- 6800 IF A%=BE% THEN *SET REdrive SCSIFS::4.$.!Render
- 3.11
- You should then use the edit program to alter the !Run file as follows:
- 3.11
- The line that begins *IF obey$dir... should be changed to...
- 3.11
- *IFobey$dir=“adfs::Render.$.!Render” THEN *SET RendHard1 SCSIFS::4.
- 3.11
- $.!Render ELSE *SET RendHard1<Obey$Dir>
- 3.11
- The previous code may seem a bit long winded but I have unfortunately
- not been able to get the *KILLADFS command to work with my version.
- Neil Berry.
- 3.11
- • Screen size − The screen size in O.S. co-ordinates may be found using
- OS_ReadVduVariables and variable numbers 4 (XEigFactor),5(YEigFactor),11
- (XWindLimit) and 12 (YWindLimit). The last two are hidden over the page
- and for a while I missed them (pages 345-348 and 350-352). There is
- also a message that the Wimp broadcasts when the user changes mode,
- enabling your task to keep uptodate on screen sizes − important for drag
- boxes amongst other things. See page 1259. Kevin Quinn.
- 3.11
- • System Variables for Filer Module − This little routine enables you to
- use RISC-OS variables with the Filer_OpenDir and Filer_CloseDir
- commands. This means that you can do commands such as “Filer_OpenDir
- <Obey$Dir>.DataFiles” and make programs totally independent of where
- they are on the disc. The module requires about 14k of free memory in
- the RMA. The program has been written in such a way that it should work
- with all future versions of the Filer.
- 3.11
- REM >Filer
- 3.11
- *RMKill Filer
- 3.11
- *RMReInit Filer
- 3.11
- *RMFaster Filer
- 3.11
- SYS “XOS_Module”,18,“Filer%Base” TO ,,,CodeBase%
- 3.11
- TableBase%=CodeBase%+CodeBase%!¤18
- 3.11
- Info%=FN_LookupInfo(“Filer_OpenDir”)
- 3.11
- TableBase%!Info%=TableBase%!Info% OR &00000100
- 3.11
- Info%=FN_LookupInfo(“Filer_CloseDir”)
- 3.11
- TableBase%!Info%=TableBase%!Info% OR &00000100
- 3.11
- END
- 3.11
- :
- 3.11
- DEF FN_LookInfo(Text$)
- 3.11
- LOCAL Offset%,Command$
- 3.11
- Offset%=0
- 3.11
- REPEAT
- 3.11
- Command$=“”
- 3.11
- REPEAT
- 3.11
- Command$+=CHR$(TableBase%?Offset%)
- 3.11
- Offset%+=1
- 3.11
- UNTIL TableBase%?Offset%=0
- 3.11
- Offset%=(Offset%+16+3) AND NOT 3
- 3.11
- UNTIL Command$=Text$ OR TableBase%? Offset%=0
- 3.11
- IF Command$=Text$ THEN =Offset-12 ERROR 0, “I can’t find ”+Text$
- 3.11
- There is one slight problem with this routine due to the way that RISC-
- OS implements the *RMFaster command by re-initialising the module. This
- means that the Filer icon disappears from the Desktop and cannot be
- recovered without restarting the desktop so the routine is probably best
- placed in a boot routine that subsequently starts up the desktop. Simon
- Callan.
- 3.11
- • TWIN 8000 − If you load TWIN at an address other than hex 8000 the
- <f10> key functions (goto, newtime, etc) do not work. It caused me no
- end of problems and phone calls to Acorn before I realised this.
- 3.11
-
- • Greek3 outline font problem − I was very interested to read, in
- Archive 3.11, about solving the problem of the slowness of the Computer
- Concepts Greek3 font. The root of the problem was that the internal and
- external names should be the same, and the article suggests that you can
- simply rename the !Fonts.Greek3 directory to !Fonts.Greek, which is very
- quick and easy. However, if you do this then any existing !Draw files,
- etc containing the Greek3 font will not display with ordinary system
- font characters. It seems desirable to retain the external name Greek3.
- 3.12
- I think that the best course of action is to change the internal name
- from Greek to Greek3, using the Acorn !FontEd application. The article
- mentions this without saying HOW to do it; it was all GREEK to me! So
- after I found out the hard way, here is an idiots guide...
- 3.12
- Install !FontEd on the iconbar, open up the !Fonts.Greek3 directory, and
- you will see the IntMetrics and Outlines files. Drag the Outlines file
- onto the !FontEd icon on the iconbar. A window will then open showing
- all the Greek characters. After a pause, you will hear a beep to show
- that the operation is complete. Now click <menu> over this window and
- use the Alter->Font name option to change it from Greek to Greek3. Now
- choose the Save->Outlines and Save->Metrics options in turn; just click
- on the OK boxes, as the file and path names are fine as they are. Be
- very careful not to change anything else! Richard Stery (Wakefield BBC
- Micro User Group)
- 3.12
- Make sure you take a backup before you try this as you risk losing the
- font if you get it wrong. Don’t say we didn’t warn you! Ed.
- 3.12
- • Recovering deleted files − If you accidentally delete a file you can
- still recover it so long as you take the following steps:
- 3.12
- (i) Do NOT write any data on the disk.
- 3.12
- (ii) Use the !DiscEdit program on Careware 2 and look for your file on
- the disc and note the address (in hex) of the start and end of the file.
- 3.12
- (iii) Now you can use these addresses with the file recoverer program on
- Shareware 9 to extract the file from the disc. Dirk Schafer.
- 3.12
- • RenderBender on SCSI − In the hint last month, Neil Berry was
- obviously using an early version of Oak’s SCSI interface software in
- which the filing system was referred to as SCSIFS, so all references to
- “SCSIFS::” should be replaced by “SCSI::”.
- 3.12
- • SWI“OS_PrettyPrint” works in VDU 5 mode (print text at graphics
- cursor) as well as VDU 4 mode (print text at text cursor). It formats
- the text according to the current graphics clipping window (set by VDU
- 24). For more details on OS_PrettyPrint see Archive 1.7 p9. Paul
- Witheridge.
- 3.12
- • System variables for the Filer Module (revisited) − Here is a simpler
- solution to the problem of not being able to use system variables with
- the *Filer_OpenDir and *Filer_CloseDir commands than was suggested in
- Archive 3.11 p7.
- 3.12
- *SetMacro Alias$Filer_OpenDir Set Alias%Foo %Filer_OpenDir
- %0|Mfoo|MUnset Alias%foo|M
- 3.12
- *SetMacro Alias$Filer_CloseDir Set
- Alias$foo%Filer_CloseDir%0|Mfoo|Munset Alias%foo|M
- 3.12
- Once these two lines have been typed, *Filer_OpenDir and *Filer_CloseDir
- can then be used with system variables. Michael Ben-Gershon.
- 3.12
- • !Edit functions keys − Two more undocumented function key actions for
- EDIT (in addition to <shift><f1> as described in Archive 3.4 p5). These
- are: <Ctrl><f2> which is equivalent to clicking on the window close icon
- and <ctrl><f7> which toggles between the current caret position and the
- beginning of a marked block. Paul Witheridge.
- 3.12
-
- • 160k ADFS discs for the Archimedes? If you have upgraded to the
- Archimedes from a Master, or even a Beeb with ADFS, you might have some
- 5.25“ discs you want to transfer. According to the manuals, the
- Archimedes will only read and write to 640k (L) format, Arthur 800k (D)
- format, or the RISC-OS 800k (E) format using either 3.5” or 5.25“ discs
- (80T). However, the Master could read and write 40T 160k (S) format,
- 80T 320k (M) format, or 80T 640k (L) format discs. I discovered by
- accident that the Archimedes will quite happily read 5.25” 160k (S)
- discs in 40T mode, and in fact save them − I have not been able to try
- out 320k discs since I do not have any. You cannot, however, format
- discs at either 160k or 320k on the Archimedes but then why would you
- want to anyway? Chris Hughes (Wakefield BBC Micro User Group).
- 4.01
- • Apocalypse Tips − Progressing from planet to planet is really simple.
- At the start of the game, a map of your selected planet is displayed.
- All the objects on the planet’s surface are represented by coloured
- dots, about 80% of which must be destroyed for your craft to be
- withdrawn and for you to be allocated another planet.
- 4.01
- As you progress through the game and return to the ‘Guild of Spacings’
- you will be given various add-ons for your ship. These include a super-
- cooler for your laser-canon and better shielding. It is vital that you
- have these if you intend to progress at a reasonable pace, so it is
- advisable to get them as soon as possible. Remember, you can only
- return a maximum of five times before being rejected by the Guild. When
- you have destroyed your 80% or so, you will automatically be withdrawn
- by the Guild − this may take some time so don’t give up too quickly!
- 4.01
- If you prefer rather more action and less running away, the following
- lines of the BASIC file ‘!Apocalyps.Apocalypse’ can be changed.
- 4.01
- Line 290 is your starting score.
- 4.01
- Replace line 330 with: 330 !shieldcharge=16 :
- !rapidturnF=1:!guntempcooler=0
- 4.01
- Now delete lines 340 to 380 inclusive for all the extra features and
- (very) strong shields.
- 4.01
- Replace line 770 with: UNTIL 0 for infinite lives. At line 1970
- !impcounter is the number of objects you have shot, which determines how
- many you have to go before advancing to the next planet. For instant
- withdrawal, replace 1970 with: 1970 !impcounter=10000.
- 4.01
- Line 6910 is how many times you can return to the guild before rejection
- (this is normally 5).
- 4.01
- • HFORM v1.72 bug or feature? If you try to format an ST506 hard disc
- that has had a different profile (e.g. it was used on a PC beforehand)
- with the Acorn HFORM program supplied on the RISC-OS Supplement Disc,
- the new disc shape option will not be acknowledged and so the full
- capacity of the drive may not be realised. This can be overcome by
- removing the line that reads:
- 4.01
- 2130 IF cyl%=0 IF head%=0 IF Formatted% GOTO 2180
- 4.01
- Brian Oliver.
- 4.01
- • Hostages cheat mode − If you hold down the <R>, <U>, <T> and <H> keys
- once the title screen has loaded and press <return>, you will enter into
- the cheat mode. This allows you to jump to either section two or three
- of the game with three hostages and seven terrorists.
- 4.01
- • RAM discs for the PC Emulator − It is possible to create a hard disc
- partition in any filing system. For example, by altering the !PC.!Run2
- file so that the path for Drive D is ‘RAM:$.RamDisc’ and using the FDISK
- program to create a RAMFS hard disc partition, you can obtain any size
- RAM disc you require _ memory and pages sizes permitting. Michael Ben-
- Gershon.
- 4.01
- • Reading a system variable from BASIC − The question was, “I’ve got a
- system variable being set in the !Run obey file:
- 4.01
- Set MaxNumberOfFonts 32
- 4.01
- and I want to be able to read this value into a BASIC variable but when
- I use:
- 4.01
- value% = VAL (“<MaxNumberOfFonts>”)
- 4.01
- it produces the error ‘Variable not found’, because it takes the ‘<’
- character as meaning ‘less than’ rather than ‘start of system variable’.
- Using the BASIC keyword EVAL has the same effect.
- 4.01
- The first thing we need to do is to extract the value of the system
- variable into a string that we can manipulate. After searching through
- the PRM volume II, I eventually found OS_ReadVarVal (SWI&23) on page
- 750. On entry, R0 points to the name of the system variable to be read,
- R1 points to a suitable buffer to store the string in, R2 is the maximum
- length of this buffer, R3 is set to 0 to use the first occurance of the
- named system variable, and R4 is set to 3 so that an expanded string is
- returned in the buffer.
- 4.01
- On exit, we should now have the value of the system variable in the form
- of a string. The next task is to convert this string into an integer,
- and this is easily performed by using OS_ReadUnsigned (SWI &21) on page
- 585. On entry, R0 is set to 0 so that the base number used is assumed
- to be 10 unless the string indicates otherwise, R1 is the pointer to the
- string (note that this is the same as R1 for OS_ReadVarVal, which is
- preserved on exit). On exit R2 contains the value of the system
- variable as an integer, using only two SWI calls.
- 4.01
- This is easily implemented in both BASIC and ARM assembler.
- 4.01
- In BASIC this can be achieved with 4 instructions:
- 4.01
- MaxBufferLength = 16
- 4.01
- DIM BufferPtr MaxBufferLength
- 4.01
- SYS “OS_ReadVarVal”, “MaxNumberOfFonts”, BufferPtr,
- MaxBufferLength,0,3
- 4.01
- SYS “OS_ReadUnsigned”,0,BufferPtr TO ,,value%
- 4.01
- and if you want to do in Arm assembler, then only eight instructions are
- necessary:
- 4.01
- ...
- 4.01
- ADR R0, SystemVariablePtr ; point to system variable
- 4.01
- ADR R1, BufferPtr; point to buffer
- 4.01
- MOV R2, #MaxBufferLength ; length of buffer
- 4.01
- MOV R3, #0 ; use first one found
- 4.01
- MOV R4, #3 ; expand fully
- 4.01
- SWI XOS_ReadVarVal ; R1 preserved
- 4.01
- MOV R0, #0 ; use default base
- 4.01
- SWI XOS_ReadUnsigned ; R2 = value%
- 4.01
- SystemVariablePTr = “MaxNumberOfFonts”, 0 ; note no ‘<’ or ‘>’ are
- used
- 4.01
- ALIGN
- 4.01
- MaxBufferLength * 16
- 4.01
- BufferPtr % MaxBufferLength ; reserve MaxBufferLength
- 4.01
- ALIGN ; bytes of workspace
- 4.01
- To give a quick example of its use. ‘SetMaxNumberOfFonts 16’ gives
- value% = 16. ‘SetMaxNumberOfFonts &20 gives value% = 32.
- 4.01
- This may be of use to programmers, as it allows constants to be set up
- in the !Run obey file and users can modify them to fit their require
- ments, without having to modify the program itself. John ‘Lofty’
- Wallace.
- 4.01
- • System Variables for the Filer Module (Archive 3.11 p7) − The problem
- with the Filer module not allowing you to include system variables can
- be solved a lot easier (and without taking up any valuable RMA space).
- 4.01
- I like to use icons for the directories which contain the third party
- applications, demos, utilities, etc. This meant using an application
- directory and I wanted a general purpose !Run obey file to open the
- directory viewer (using Filer_OpenDir). However, I came across the same
- problem as Simon Callan. The solution I present here was passed on to
- me by Paul Fellows (who wrote ‘Archimedes Basic Compiler’ amongst other
- things) and so I don’t wish to take the credit for such a neat idea.
- 4.01
- So that I don’t have the !Run, !Sprites, etc with the actual programs I
- want to view, I create a directory ‘_’ inside that application directory
- to hold them. Thus my !Run obey file reads as follows:
- 4.01
- |!Run obey file
- 4.01
- |
- 4.01
- IconSprites <Obey$Dir>.!Sprites
- 4.01
- Set Alias$OpenDir Filer_OpenDir <Obey$Dir>._
- 4.01
- OpenDir
- 4.01
- Setting a command string as an ‘Alias’ will expand any system variables
- within that command string. This gets around the problem which Simon
- describes, and also means that you don’t need to run a program every
- time you switch the machine on. John ‘Lofty’ Wallace.
- 4.01
-
- • 160k ADFS Discs (continued from Archive 4.1 p9) − It is certainly true
- that the Archimedes can be made to read and write 160k or 320k ADFS
- discs correctly. I think, however, that the Archimedes ‘sees’ these as
- 640k L format discs and if a read or write operation directs it to a
- track beyond 39 (160k) it will try to push the disc head off the edge of
- the disc searching for tracks that aren’t there. Fine if you know what
- you’re doing. Lorcan Mongey.
- 4.02
- • Am I in the desktop? You can use the Wimp_ReadSysInfo SWI command to
- see if your program is running in the desktop or not. The command
- returns the number of active tasks, which will be zero if the program is
- running outside of the desktop environment. The example program below
- will sense whether it has been run from the desktop environment and if
- not, it will start up the desktop before running another application (in
- this case !Edit).
- 4.02
- program segment missing
- 4.02
- Adrian Look.
- 4.02
- • Apocalypse hints & tips − If you shoot the green T-shaped buildings
- with a triangular roof using a mega photon your shield will be replen
- ished. If you shoot a purple and green mushroom, your shield will go
- into override but your points are decreased for anything you hit with
- the photons you are allocated. If you shoot a rectangular brown
- building they leave a shallow pyramid and if you shoot this, a Rakon
- Gomjabba will appear and you will get a few more points for destroying
- this. If you shoot a Snail Rider with a mega photon, your energy banks
- are recharged. If you shoot a green mushroom, your score will decrease
- for everything you hit with the mega photons allocated.
- 4.02
- If you type in and run the following program with disc two in drive 0
- you will then be able to access all of Apocalypse’s nine worlds.
- 4.02
- program segment missing
- 4.02
- Paul Bedford.
- 4.02
- • Bug in the Debugger Module − Some of you may be aware of a problem
- with the Debugger module failing to disassemble certain instructions
- correctly if they contain an immediate constant. An immediate constant
- is stored as an eight-bit value with a 4-bit shift applied, and the
- debugger normally expands this format to its correct value, but
- occasionally fails, e.g.
- 4.02
- E28F0C01 ADD R0,PC, #&0100 correctly expanded
- 4.02
- E28F0D01 ADD R0,PC, #&01,26 failed to expand (should be #&40)
- 4.02
- I have disassembled the debugger module and found the offending piece of
- code. It doesn’t seem to be a bug, rather a deliberate move to expand
- constants differently under certain circumstances but for no obvious
- reason. Anyway, the fix is to change the word at offset &920 in the
- module from &1A000028 to &FA000028, effectively changing a BNE to a BNV.
- This seems to solve the problem, although I haven’t tested this fix
- exhaustively, so proceed with caution. Lorcan Mongey.
- 4.02
- • BUILDing !Run files − If you write a !Run file using *BUILD and want
- to include a line such as:
- 4.02
- Run <Obey$Dir> .!RunImage
- 4.02
- then, instead, you should type:
- 4.02
- Run |<Obey$Dir>.!RunImage
- 4.02
- to prevent RISC-OS from inserting the value of Obey$Dir into the file.
- It may be obvious but until now I have been using !Edit to write a two
- line Obey file! Elliott Hughes.
- 4.02
- • Copy Options − “Confirm” and “Verbose” − I think this is probably one
- of those hints which would be classed as “obvious” by those who know it:
- The Archimedes User Guide and the PRM both describe, at some length, the
- use of the system variable Copy$Options which sets default options for
- the *Copy command. However, neither make if clear that the desktop
- filer has its own “Confirm” and “Verbose” options which are quite
- independent of those which are stored in the system variable. Thus no
- amount of modification of Copy$Options in boot files or elsewhere will
- affect the way the desktop behaves.
- 4.02
- The filer options can be read and changed by clicking the menu button
- over any directory window and choosing the Options option. The options
- selected by this route differ in one significant way from the
- Copy$Options in that they are stored in battery-backed RAM and thus are
- preserved when the machine is switched off or reset. They are stored in
- byte 198 of the CMOS RAM (not byte 195 as my copy of the PRM says) along
- with various other desktop options:
- 4.02
- program segment missing
- 4.02
- Having these options stored in CMOS RAM can sometimes be an advantage
- but on the whole I find it rather inconvenient. For instance, I often
- change temporarily from an icon display to “Full Info” and would like
- icons to be restored after a reset. Luckily this sort of preference can
- easily be dealt with by a few lines in the boot routine. For instance,
- the following lines of BASIC will reset the Display mode to small icons
- while preserving the other options:
- 4.02
- program segment missing
- 4.02
- Hugh Eagle.
- 4.02
- • Cut and paste clip board − Many RISC-OS applications have a ‘cut and
- paste’ option. If these applications can also edit more than one
- document at a time then you can use the ‘cut and paste’ option as a clip
- board to transfer data from one document to another. For example, you
- can select a block of text in one !Edit document, move to another
- document and then use the <ctrl><c> option to copy the block into that
- document. This method will also work with applications such as
- PipeDream but not Ovation or Impression, etc as they use the ‘clip
- board’ method. Steve Drain.
- 4.02
- • Deskjet Plus Ink Cartridges, Recharging − You may have discovered the
- same problem as me when trying to recharge these cartridges, namely that
- the ink won’t go in the hole!
- 4.02
- A bit of reverse engineering, with the aid of a hacksaw, has revealed
- the cause. The container is filled with a dense spongy material which
- holds the ink, but this does not enter the cavity formed by the raised
- green portion with the central vent hole. If a syringe needle is
- entered through this hole it must be long enough to reach into the
- sponge. At least 20mm is required. If this is not the case then the
- inserted ink charge is held on top of the sponge by surface tension, and
- quickly overflows through the charge hole.
- 4.02
- The only syringes which I can get hold of are intended for diabetics and
- have a needle which is too short to reach the sponge through the top
- hole. The solution is to fill the sponge through the top hole. The
- solution is to fill through a second hole, drilled as small as possible,
- on the 3mm wide land to the side of the raised portion. In this
- location there is a small internal cavity not filled with sponge. This
- prevents capillary leakage after recharging.
- 4.02
- Archive readers may be interested in the following program which will
- draw a sketch showing the location of the hole. It should be made as
- close to the vertical wall of the raised portion as is possible.
- 4.02
- program segment missing
- 4.02
- With regard to inks I have excellent results with Rotring Art Pen Ink
- which comes in many colours. Bill Graham.
- 4.02
- • MEMC DMA control register − With reference to Sean Kelly’s tip in June
- ‘90 for gaining extra speed from the Archimedes by disabling the VIDC’s
- DMA access. Although the technique normally works without any trouble,
- occasionally the machine crashes or has its memory contents corrupted.
- As Sean correctly stated, bit 10 of the MEMC register controls VIDC DMA,
- however, as the dynamic RAM (DRAM) in the machine is no longer being
- read by the VIDC it is also no longer being refreshed properly. Bits 8
- & 9 of the MEMC come to the rescue, they are the DRAM refresh control
- bits.
- 4.02
- There are three available modes of refresh:-
- 4.02
- bit 8 bit 9
- 4.02
- a) no refresh 1 0
- 4.02
- (not used by the Archimedes)
- 4.02
- b) refresh during video flyback 0 1
- 4.02
- c) continuous refresh 1 1
- 4.02
- Flyback time during standard modes (0-16 & 24) is greater than the DRAM
- holding time and as such requires refresh during flyback. In multi-sync
- modes the flyback time is much faster and the memory does not need to be
- refreshed by the MEMC.
- 4.02
- The codes for the various modes are:-SYS“OS_UpdateMEMC‘,768,1792 to turn
- off the VIDC DMA and invoke continuous refresh and
- SYS“OS_UpdateMEMC‘,1536,1792 to return to normal for standard modes.
- 4.02
- It should be pointed out that the continuous refresh mode uses the DMA
- video pointer as the refresh address source, incrementing the pointer
- after use. As such this should be used with care if the pointer is used
- as an active part of your program whilst the screen is blanked. (But
- why would you want to move the pointer if you can’t see it??)
- 4.02
- There is also a sound DMA control bit in the MEMC but as this does not
- affect memory refresh bits 8 and 9 which do not need to be altered.
- 4.02
- Bit 11 − 0 Sound DMA disable
- 4.02
- 1 Sound DMA enable
- 4.02
- Rob Swain.
- 4.02
- • Modifying the RISC-OS dot matrix printer driver − To add a new dot
- matrix printer configuration to the RISC-OS printer driver you will need
- to alter the ‘PrData’ file in the ‘!PrinterDM’ directory (on you
- Applications Disc One or RISC-OS Extras Disc = Shareware 17):
- 4.02
- 1) Make sure you have made a back up copy
- 4.02
- 2) Run the !Edit program on Applications Disc One
- 4.02
- 3) Double click on the copy of !PrinterDM that you wish to alter,
- whilst holding the <shift> key down − a filer window will then open with
- the contents of the !PrinterDM application inside
- 4.02
- 4) Double click on the ‘PrData’ file in the !PrinterDM filer window − a
- text window will then open
- 4.02
- 5) Use the arrow keys to position the caret (red vertical text cursor)
- just before the ‘Configured options’ heading and after the row of full
- stops
- 4.02
- 6) Add the following text changing the information to match your
- printer (the example below adds a Shinwa CP80/Lucas LX80 option to the
- RISC-OS printer driver):
- 4.02
- program segment missing
- 4.02
- Alan Dawes
- 4.02
- • Nevryon hints & tips − Nevryon passwords for level three, five and
- seven are given at the foot of this column, the letters being reversed
- for the benefit of those who prefer to ignore them.
- 4.02
- The following Nevryon cheat allows the ship to be upgraded to have any
- weapons desired and energy/credits/lives may also be altered.
- 4.02
- Load the ‘!Nevryon.Multi’ file on the Nevryon disc 1 and insert the
- following at line 211.
- 4.02
- 211 Dump=PAGE-&3F800:Dump?n=value
- 4.02
- where n is:
- 4.02
- n=27: Ship speed, 4 recommended
- 4.02
- n=28: Shield orb (top), 1=ON 0=Off
- 4.02
- n=29: Shield orb (bottom), 1=ON 0=OFF
- 4.02
- n=30: RAM, 1=ON, 0=OFF
- 4.02
- n=32: Gun droids, 0-2
- 4.02
- n=33 Lasers, 0-2
- 4.02
- n=35: Number of credits (default 3)
- 4.02
- n=36: Number of lives (default 4)
- 4.02
- n=37: Starting secondary weapons status, 0=Off, 1=flamer, etc
- 4.02
- n=38: Gold bar status, 0=OFF, 1=flamer, 2=mines, etc
- 4.02
- n=43: Amount of energy (default 12)
- 4.02
- Change as many of these values as you want and save altered program and
- repeat the process for the $.Multi file on the Nevryon 2 disc. Jeremy
- Mears.
- 4.02
- upside down words missing!
- 4.02
- • Printing a full path name − This is a reply to the cry of help in
- February 1990 from Richard Skemp about how to get the printer driver to
- include the full pathname. If you add the following line to the Library
- program in the !PrinterDM directory, the printer driver will print the
- full file pathname of any text file you print.
- 4.02
- 3281 BPUT#outfile%, CHR$13+CHR$10 +“Printing file ”+filenam$
- +CHR$13+CHR10+CHR$10
- 4.02
- Lorcan Mongey.
- 4.02
- • Reinstating the filer module − An item on system variables mentions
- that if you *RMFaster the filer module from the desktop, you lose the
- filer icons and can’t get them back (Archive 3.11 p7). To retrieve
- them, try:
- 4.02
- <F12>
- 4.02
- Desktop
- 4.02
- <Return>
- 4.02
- this doesn’t interfere with anything already in the desktop but re-
- starts any of the default tasks that have been lost, namely Filer,
- PaletteUtil an TaskManager. Note, however, that if you *RMKill or
- *RMFaster the Task Manager, you can’t get a *prompt by pressing F12! To
- get around this, make up an Obey file containing the command
- 4.02
- *Desktop
- 4.02
- and this will do the trick. It’s quite interesting to see the Task and
- Palette icons in the “wrong” place on the icon bar! However, I feel
- that you should not deliberately interfere with desktop modules and this
- method should really be regarded as a ‘get-you-home’ technique in case
- of problems. Lorcan Mongey.
- 4.02
- •REMming your programs − When writing a program, in any language, it is
- good practice to put plenty of comments in to remind oneself what each
- particular section of code does. However, in BASIC, there are two
- things which tend to deter one from following this practice. The first
- is that the interpreter has to recognise a REM statement before it knows
- to ignore it. This takes time, which may be undesirable in procedures
- and loops. The second deterrent is the amount of space taken by the
- text of the comment, which is stored verbatim in the program.
- 4.02
- I have a practice, when commenting procedures and functions, of placing
- explanatory comments outside the procedure/function block. For
- instance:
- 4.02
- program segment missing
- 4.02
- Clearly, the above practice prevents the REM statements from impacting
- the performance of the procedure/function, as they are in section of the
- code which the interpreter will never see.
- 4.02
- This last observation leads to an additional possibility for interpreted
- code (but not for compiled BASIC). Since the interpreter never sees
- these lines between procedure/function blocks, the normal syntax rules
- can be broken without an error being generated. Thus, we can save some
- space, as well as execution time, by omitting the REM key words. Note
- that this will only work if the comments are where the interpreter
- cannot see them. If you are in the habit of using GOTO statements
- (sometimes a handy way of removing umpteen layers of IF... THEN... ELSE
- statements if you are checking for exceptions and, despite common
- ‘wisdom’, still used frequently by professional programmers), this
- placing of syntactically incorrect code beyond the bounds of a procedure
- block might allow the trapping of such errors as omitting the ENDPROC or
- = statements. David Hazel.
- 4.02
- • Star LC10 − An undocumented feature on a Star LC10 Colour Printer, is
- that if you open out a file to the printer and try and print characters
- 27 and 102 to it, it prints out the current dip switch setting:
- 4.02
- program segment missing
- 4.02
- Jason Ede.
- 4.02
- • System Variables (continued from 4.1 p9 & 4.1 p10) − I had had similar
- problems and came up with a different solution which can solve both
- problems, i.e. reading system variables to BASIC and passing system
- variables to the Filer module. I use a call to OS_EvaluateExpression,
- which can return a numeric or string value, as follows:
- 4.02
- program segment missing
- 4.02
- This is an artificial example; in practice you would know whether you
- were expecting a numeric value or a string, such as Obey$Dir. Lorcan
- Mongey.
- 4.02
-
- • Basic Text File Type − Acorn have specified field type &FD1 for BASIC
- ASCII text. This is very useful for BASIC programs which are kept in
- !Edit format as it allows the user to define a RunType for them. For
- example, the following command will cause a BASIC text file to be run
- just like a normal BASIC file:
- 4.03
- *Set Alias$@RunType_FD1 Basic-quit |“%0|” %*1
- 4.03
- Jim Markland, Cirencester.
- 4.03
- • Converting old Arthur programs to RISC OS − Before the days of RISC-
- OS, programs running under the old Arthur used a form of reconfigure
- system to adjust the CMOS RAM settings. Now that RISC-OS is available,
- those programs are out of date, and are a pain, as in most cases they
- don’t “Boot-Up” from the desktop.
- 4.03
- RISC-OS uses a different form of reconfiguring. Two in fact − one is
- the WimpSlot command, which tells the computer the minimum and maximum
- amount of memory the program is going to need and the other uses the
- module MemAlloc, found in the !Lander directory on Application disc 2.
- 4.03
- These two things are quite easy to use. The only problem is how to find
- out how much room the program is going to use. This can be discovered
- fairly easily.
- 4.03
- Load up the !Boot file and examine it using the BASIC Editor. What you
- are looking for are a set of commands/variables, which tell the computer
- the amount of SpriteSize/Screensize, etc it is going to need to run. To
- convert this, all you need is the MemAlloc module, and in a run file,
- use MemAlloc to allocate the memory needed for the application.
- 4.03
- Here are some examples:
- 4.03
- Holed Out
- 4.03
- 1. Format a fresh new disc
- 4.03
- 2. Create a new directory called !HoledOut
- 4.03
- 3. Copy all the files on the original Holed Out disc, except the !Boot
- file into the new directory.
- 4.03
- 4. Copy MemAlloc into the !HoledOut directory.
- 4.03
- 5. Use !Edit to create the following Obey file:
- 4.03
- program segment missing
- 4.03
- 6. Load HoledOut 2 into the BASIC Editor and, where the program loads a
- particular file, change it to
- 4.03
- (LoadCommand) <HoledOut$Dir>. (File to be loaded)
- 4.03
- for example
- 4.03
- 70 *RMLOAD BELL
- 4.03
- change to
- 4.03
- 70 *RMLOAD <HoledOut$Dir>.Bell
- 4.03
- and
- 4.03
- 610 CHAIN “HOLEDOUT3”
- 4.03
- change to
- 4.03
- 610 CHAIN “<HoledOut$Dir>.HOLEDOUT3”
- 4.03
- etc, etc.
- 4.03
- 7. Do the same as above to the file HOLEDOUT3, wherever the program
- loads a particular file, put the command<HoledOut$Dir>. in front of the
- filename.
- 4.03
- 8. Create a !Sprite file for the application icon and away you go!
- 4.03
- Then HoledOut should run as a RISC-OS application, and will also run off
- a Hard Drive (N.B. I used Holed Out Extra Courses 1)
- 4.03
- Explanation of !Run File:
- 4.03
- Line 1: Tells the computer to set a directory, and to enter it without
- changing the root directory whenever the <HoledOut$Dir> command is used.
- 4.03
- Line 2: Allocates the minimum and maximum amount of memory needed to
- run the application.
- 4.03
- Line 3: Tells the computer to look for the module MemAlloc in memory,
- if it isn’t found then it tells the computer where to find it and loads
- it.
- 4.03
- Lines 4-9: Tell the computer the memory settings the program needs.
- 4.03
- Line 10: Kills the module MemAlloc for more memory.
- 4.03
- Line 11: Runs the actual program.
- 4.03
- Pacmania:
- 4.03
- In this case, things are a little different. So do the following:
- 4.03
- 1. Format a new disc.
- 4.03
- 2. Create a new directory called !PacMania.
- 4.03
- 3. Copy all the files except !Boot into the new directory.
- 4.03
- 4. Use !Edit to create an Obey file containing the following...
- 4.03
- Set PacMania$Dir <Obey$Dir>
- 4.03
- Run <PacMania$Dir>.!RunLoad
- 4.03
- 5. Use the BASIC Editor to create a file called !RunLoad...
- 4.03
- 10 *Load <PacMania$Dir>.PacMania 10000
- 4.03
- 20 CALL &100000
- 4.03
- 6. Create an application !Sprite file.
- 4.03
- PacMania should then run as a RISC-OS application.
- 4.03
- So there we are, I’ve also used another command to help with the loading
- process. <Obey$Dir> and <(Application name)$Dir>. These two commands
- tell the computer where to find certain files, no matter where they are.
- (Hidden in directories on a hard drive for example.) Duncan Burbidge.
- 4.03
- • Getting Taxan 795 to work with Archimedes. The Taxan 795 is an
- excellent multi-sync colour monitor, but it was a bit unnerving, on
- unpacking and assembling my new A440 with VIDC Enhancer and 795 monitor,
- to be confronted with a screen which just would not synchronize! But,
- with help from Paul and from Atomwide, and with a lot of exploration, I
- think that I now know what screen modes it will support and how to get
- them.
- 4.03
- Initially, the trick is to set *CONFIGURE MONITORTYPE 1 and *CONFIGURE
- WIMPMODE20. Then the machine wakes up in the desktop in mode 20 whether
- or not the VIDC enhancer software (VIDCmodes for the 795) is installed,
- provided that (if it is not installed) the VIDC switch is ‘off’.
- However, if VIDCmodes is not installed, loading an application which
- changes the mode to one of the basic Archimedes modes (0-17) plunges you
- back into an unsynchronized screen. Therefore, my initial explorations
- were done with an ordinary monchrome monitor connected to the sync BNC
- socket, after changing two links on the circuit board − as explained on
- page 434 of the RISC-OS user guide. Options for all Acorn and Atomwide
- modes (except the high-resolution mono mode 23) are listed in the
- accompanying table. (See opposite.) Bill Mapleson.
- 4.03
- • Keywords in BASIC − I have found that PRINT ‘SHIFT F1’ showed a lower
- case underline ‘a’. From BASIC on pressing return to ‘PRINT’ the result
- I found a number that looked just like TIME. It was. SHIFT F2 gives
- HIMEM and SHIFT F3 = LOWMEM. No other Fkey gives a number, but they all
- act as quick entry keys for use in BASIC program writing within ARMB
- edit. They must be programmed with BASIC keyword token values.
- 4.03
- I expect this is widely known but here is the list for completeness.
- 4.03
- program segment missing
- 4.03
- Simon Anthony, Nottingham.
- 4.03
- • Locating screen coordinates − When writing wimp programs (out of
- desktop) it’s often hard to plot things because you’re not sure what the
- coordinates of the screen are. Using the program below, it is possible
- to do this.
- 4.03
- program segment missing
- 4.03
- I hope the program is of some use to wimp programmers. Duncan Burbidge.
- 4.03
- • MSDOS installation on hard disc − Here is a summary of the steps for
- getting an MSDOS partition installed onto a hard disc.
- 4.03
- 1. (This step applies only if you have an old PCEmulator, e.g. V1.20,
- and a V1.33 upgrade disc)
- 4.03
- (a) Read ‘ReadMe2’ on the V1.33 disc.
- 4.03
- (b) Run ‘MakePC’ on the V1.33 disc. (This copies the file !PC.Rom from
- the 1.20 disc to the 1.33 disc. Although the desktop displays this as a
- ‘text’ file, I reckon that in fact it is the emulator itself and that
- all the other files are concerned with preparing the Archimedes to run
- the Emulator.)
- 4.03
- 2. Read ‘ReadMe’ on V1.33 but don’t take too much notice of it − it
- confused me a lot!
- 4.03
- 3. Examine the files !PC.GenBoot.! Config and !PC.GenBoot.!Modules. If
- you have more than 1M of RAM, it may be worth changing some of the ‘Y’s
- to ’N’s in !Config. When I first tried it, without any changes, my
- screen went blank because my Taxan 795 monitor requires the VIDC
- Enhancer and the VIDCmodes software installed in order to synchronize
- when not in modes 18-21. With a 4M machines, I decided to make all the
- response ‘N’ and everything seemed OK.
- 4.03
- 4. If you have a SCSI hard disc (as I have), run !SCSIDisk. This
- renames !PC.SCSIRun2 to !PC.!Run2 and !PC.!Run2 to !PC.!ADSF[sic]Run2.
- That is, it makes !Run2 the file that defines where the MSDOS partition
- is to be placed − on a SCSI hard disc not on an ADFS one. !SCSIDisk
- then creates a file ‘PC.Drive_C’ on the SCSI disc of the size you
- request (1 to 32M). This file can be *TYPEd from the Archimedes command
- line − but don’t do it until everything is complete because its contents
- misled me! The screen then displays information for running two MSDOS
- commands: FDISK and HDINSTAL. It also displays the injunction ‘Press
- ESC’ to stop: Press RETURN to continue‘.
- 4.03
- 5. If you press <return>, the instructions are cleared from the screen;
- the PC Emulator is loaded, and you are invited to put the MSDOS boot
- disk into ‘DriveA’ (Drive0). Doing so, and pressing <return>, loads
- MSDOS which asks for date and time − but pressing <return> in response
- to each request supplies the information from the system clock. When
- the ‘A>’ prompt appears, you need to carry out the instructions that
- were recently wiped off the screen: Type ‘FDISK’, then ‘1’ to create a
- DOS partition, then ‘Y’ to assign all of file Drive_C to DOS: then
- ‘HDINSTAL’ which formats the hard disc and transfers the MSDOS system
- files from the floppy MSDOS boot disc to the hard disc.
- 4.03
- 6. If you press ESC (at the ‘ESC to stop, <return> to continue’
- injunction) and need to run !SCSIDisk again, beware that this will re-
- rename the !Run2 files. I avoided this by ‘Remming’ the *rename
- statements in !SCSIDisk.!RunImage. (This is a BASIC program from which
- it would appear that the procedure for installing MSDOS on an ADFS hard
- disc would be the same without the complication of renaming the !Run2
- files.)
- 4.03
- 7. Once MSDOS is safely on the hard disc, the !PC application can be
- transferred from the V1.33 disk to the PC directory on the hard disk.
- 4.03
- 8. One last complication fo me was that when I type ‘HDINSTAL’ I go the
- quaint message ‘insert new diskette in drive C’ and, on pressing
- <return>, ‘drive not read − format failure’. Eventually, after many
- hours and several phone calls, the explanation turned out to be that I
- have two external 5.1/4“ drives and MSDOS was seeing the second of these
- as Drive C and the SCSI hard disc as Drive D. To avoid amending
- HDINSTAL (which is a simple batch file) I told RISC-OS that it had only
- two floppy drives (*CONFIGURE FLOPPIES 2, followed by <ctrl-break>) and
- all went smoothly. Subsequently I reconfigured to three floppies and
- now MSDOS wakes up with a ‘D>’ prompt ready to run from the hard disc.
- The most useful tool for finding out what MSDOS thinks it has is to type
- CHKDSKA:.CHKDSKB: etc,
- 4.03
- 9. Finally, in RISC-OS, lock the ‘Drive_C’ file. I’m astonished that
- this is not done by the PCEmulator programs. Without it, a careless
- click in RISC-OS might destroy all your MSDOS files! Bill Mapleson.
- 4.03
- • Saving your configuration settings − I recently needed to change the
- batteries in my Archimedes but this meant that I would lose the
- configuration settings stored in the CMOS RAM. I managed to solve the
- problem by writing two small programs that saved and then restored the
- CMOS RAM settings to and from a file.
- 4.03
- program segment missing
- 4.03
- Sham Gardner, Karlsruhe (Germany).
- 4.03
- (The other way of doing it is to open the computer, switch the computer
- on, change the batteries, switch off and then put the computer back
- together again − but I dare not suggest that you should do that because
- someone might stick a screwdriver into the heavily protected p.s.u. and
- I’d get blames − so I didn’t suggest it, OK? Ed.)
- 4.03
- • Wimpslotting warning. Always give the maximum amount of memory your
- program is going to use. Otherwise, the computer will eat up all the
- available memory and use it for the program and you can’t get the memory
- back unless you quit the application! This happens in FormEd (All
- versions, I would assume). The FormEd !Run file contains the line:
- 4.03
- WimpSlot -min 288k
- 4.03
- Using !Edit, change this line to...
- 4.03
- WimpSlot -min 288k -max 288k
- 4.03
- The program will then run, using up less memory, meaning that both
- !FormEd and !Paint can run at the same time on a 1M machine. You have
- been warned. Duncan Burbidge.
- 4.03
-
- • Cheats − Here are some cheats for various games. (I suggest that if
- you do any of these, you do not use the original disc, but rather work
- on a copy. Ed.)
- 4.04
- Cheat for Minerva’s BattleTank If you run the following program you
- will have however many lives you specified at line 20:
- 4.04
- program segment missing
- 4.04
- Cheat for 4th Dimension’s Inertia - Type in the following and then each
- time you lose a life, you won’t!
- 4.04
- program segment missing
- 4.04
- Cheat for 4th Dimension’s Man-At-Arms − The passwords for the 3 stages
- are: INCUBUS, STRANGE and PULSARS
- 4.04
- progam segment missing
- 4.04
- When you run this program, it will allow you loads of lives, punches and
- lots of energy. Be careful not to set any of the variables at &FF
- because it does tend to make the program crash!
- 4.04
- Cheat for Minerva’s RedShift − Once the game has loaded, type the
- following:
- 4.04
- PHASING GERALD
- 4.04
- Note: When you pressed <11>, the screen will change to the Help screen.
- Take no notice of this and keep typing the rest of the words in.
- Remember that there is a space between the two words!
- 4.04
- If you have entered this correctly, you will hear a bleep. Then just
- press <1> or <2> to play the game and when your Energy is low just press
- <E> and you’ll see the energy level is full again! Also, when your
- TurboEnergy is low press <T> and you will be back to full strength!
- 4.04
- Cheat for 4th Dimension’s E-Type − The following will give you as many
- minutes as you like to get round each track:
- 4.04
- program segment missing
- 4.04
- Type in the above and you’ll have all the time you want to round each
- track! Mark Faulkner.
- 4.04
- • DOS RAM Disc − In DOS, it is possible to set up a RAM disc and indeed,
- for many applications, it is vital to do so if one does not have the
- luxury of a hard disc. Regular DOS supports a maximum of 640 kbytes of
- RAM, although we did learn about Extended Memory in last month’s
- Archive. The problem with a DOS RAM disc is that the memory is actually
- taken from the 640k system RAM. At least it certainly is with current
- versions of the PC Emulator.
- 4.04
- A few months ago, an application appeared on the magazine disc called
- !PCRamDisc. This made use of the fact that the PC emulator can support
- up to two “hard disc” partitions and that one of these could be in the
- Archimedes RAM disc filing system. (In fact one of these can be on an
- ADFS floppy!). In this way, a large RAM disc can be used within DOS
- which does not take anything from the regulation DOS 640k. This seemed
- a really good idea and I was eager to try it out.
- 4.04
- The program which produced the DOS partition is a variation of the Acorn
- program to construct a hard disc partition but with the filing system
- and paths changed and with the allowed partition sizes also changed to
- more convenient values. Having created such a partition, the !Run2 file
- must be modified to tell the machine where the partitions are.
- 4.04
- Then, when the emulator is run, the new “drive” must be initialised
- using FDISK and then formatted using FORMAT. This part really annoyed
- me as I had to do it each time I used the emulator, and I kept for
- getting what to do.
- 4.04
- It seemed a good idea to create a ready-formatted and initialised
- partition before entering the emulator. I am sure someone could write a
- program to do this, but not me. Obviously, it would be silly to store,
- say, a 2 megabyte partition in readiness; this is just a waste of space.
- However, I discovered that an initialised, formatted, but otherwise
- empty DOS partition of one megabyte capacity could be compressed to just
- over a kilobyte using Archimedes ARC, a Public Domain file compression/
- decompression program written by David Pilling.
- 4.04
- On the magazine disc there is an application called !PCRamDisk (note the
- different spelling). This contains a compressed but empty DOS partition
- which is decompressed into the RAMFS before invoking the PC emulator.
- Please read the !Help file before using it as the !Run2 file of the
- emulator is overwritten when the application is run. Brian Cowan.
- 4.04
-
- Hints and Tips
- 4.5
- • ANSI C v3 on a SCSI Hard Disc – After some trial an error, I finally
- managed to install ANSI C v3 correctly on my new Oak SCSI card with 45Mb
- hard disc drive. Here’s what I had to do:
- 4.5
- First change line 3390 in the ‘InstallNet’ program which is on all three
- of the ANSI C discs so that it reads:
- 4.5
- 3390 DATA “ADFS::0.$”,“NET:$”,“SCSI::SCSIDisc4.$”
- 4.5
- Then run the “InstallHD” program from each disc and always answer ‘Y’ on
- the overwrite options (otherwise, the back up program would stop).
- 4.5
- If you use the included !Cstart obey file, you should not ‘*Set
- Run$Path’ in your !boot file and you should remember to modify the
- !Cstart file to work with SCSI and not ADFS i.e. c$loc SCSI::4.$
- 4.5
- Atle Baardholt, Norway
- 4.5
- • Deskjet Plus ink cartridges, recharging − Further to Bill Graham’s
- note in Archive 4.2 p8, I’ve found that Quinx Permanent Black works well
- and is probably cheaper than Art Pen Ink. You do need to be careful that
- you don’t inject more ink than the sponge will absorb, otherwise the
- mess is dreadful! Stuart Bell, Brighton.
- 4.5
- • DropShip passwords − Passwords for DropShip are Dahlia, Gaggle, Kaunda
- and Nautch.
- 4.5
- • ExAllPlus − This is a non-Wimp program which was written in an attempt
- to catalogue my discs. It was designed for use with a single ADFS Floppy
- drive and a SCSI Hard disc together with a Star LC10 printer using
- continuous paper. Other printers may require some alteration to the
- coding.
- 4.5
- Most existing “ExAll” and “CatAll” programs invoke the *EX and *CAT
- calls (!) which produce a lot of unnecessary and confusing duplication
- of libraries, directories etc. (I have memories of the reams of paper
- produced by an “ExAll” print-out of the original Archimedes Welcome
- disc.) To avoid this, these calls have been re-written so that, in
- addition to other changes, the directory headings have been reduced to
- path descriptions.
- 4.5
- The program will produce both screen and printed listings of either the
- full disc or the root directory. The various options are selected by a
- series of key-strokes and a default screen “ExAll” routine has been set-
- up which can be easily customised.
- 4.5
- Use can be made of the condensed print option to produce catalogue
- listings eight entries wide as against the usual five. This rather
- spoils the screen display in this mode but it was thought useful to
- maintain a check on the output to the printer. When using this option to
- produce “EX” listings the screen display is OK and the reverse feed
- facility of the Star LC10 enables double column print-outs to be
- obtained.
- 4.5
- The “GetType” program is loaded in by the main “ExAllPlus” code and
- contains all the FileType codes I have been able to find but it can
- easily be updated.
- 4.5
- (The listing is far too long to put in the magazine. I have put it on
- the monthly program disc. Ed.)
- 4.5
- Doug Tuddenham
- 4.5
- • First Word Plus embedded commands − If you switch off the Word
- Processor mode of FWP you can enter printer commands directly into the
- text. Double bracket command codes e.g. ((n))n1 can be entered to
- change the printer font and style. For example, with a Star LC24-200 in
- the following effects can be achieved:
- 4.5
- Font ((F))0 Times Roman
- 4.5
- ((F))1 Sans Serif
- 4.5
- ((F))2 Courier
- 4.5
- ((F))3 Prestige
- 4.5
- ((F))4 Script
- 4.5
- ((F))5 Draft
- 4.5
- Size ((S))0 Standard
- 4.5
- ((S))1 Double Width
- 4.5
- ((S))2 Double Height
- 4.5
- ((S))3 Double Width and Height
- 4.5
- Colour ((C))0 Black
- 4.5
- ((C))1 Red
- 4.5
- ((C))2 Blue
- 4.5
- ((C))3 Violet
- 4.5
- ((C))4 Yellow
- 4.5
- ((C))5 Orange
- 4.5
- ((C))6 Green
- 4.5
- Peter Thomas, Leics
- 4.5
- • FWP Cut and Paste − It is possible to cut a marked block of text in a
- First Word Plus document and then paste it into another document. Both
- documents must be loaded first. This may be obvious but I have only
- just found out – the hard way. Dave Livsey, Devon
- 4.5
- • Impression hints & tips − Now that I am using Impression for the
- magazine, there are likely to be a number of hints & tips forthcoming.
- Some of these may be obvious to the more experienced Impression users,
- but bear with me because some of us are only just beginning and, in
- fact, the experiences of someone just starting to use an application can
- often be very helpful to others going through the same hoop. Also, when
- you have been using an application for a while, you build up the feeling
- that you know how it works and there may be facilities which you never
- realised were available which new users pick up. Anyway, here are the
- first few...
- 4.5
- Adding styles to titles − If you want to add a style to a title, be sure
- to select the whole line including the carriage return. In other words
- either put the cursor by the left hand margin and drag down to the next
- line or triple-click somewhere on the line. (I’m sure you all know that
- double-click selects a word, triple-click selects a line and quadruple-
- click (or <ctrl-@>) selects a whole paragraph.) The reason for selecting
- in this way is that if you only select by dragging across the line, you
- omit the carriage return which remains in the base style. The problem
- with this is that if, as in the title lines in Archive, the added style
- says “reduce the space after the paragraph to zero”, the carriage return
- still has the full space-after-paragraph so the paragraph spacing
- remains unchanged.
- 4.5
- Entering point sizes − If you want to change the size of some text, you
- mark it and press <shift-ctrl-S>. If the dialogue box is empty, you can
- type in a number, say 18, and it will assume you mean 18 point. If you
- decide that you want it a bit bigger and press <shift-ctrl-S> again, it
- comes up with “18pt” in the box. If you then type in, say, 2 <return> it
- will interpret the “18pt2” as (18+2)pt and will give you 20pt! (Well, it
- works in version 2.05.) Unfortunately, if you press <-> to try to put,
- say, -2, it seems to interpret it as an escape and closes the box.
- 4.5
- Marking, deleting and re-typing − (This is something that is obvious to
- people coming to Impression via the Mac but may have been missed by
- people brought up through RISC-OS.) If some text is marked, by any
- means, and you want to replace it by some text you are about to type in,
- there is no need to delete the marked text first. As soon as you start
- to type, the marked text is deleted and transferred to the scrap-pad and
- your typing appears in place of it. The deleted text can be used
- elsewhere by pasting it in with <ctrl-V>.
- 4.5
- Quick searching − If you want to find something quickly, find/replace is
- a good way to do it. Call it up with <ctrl-f4> and then, to delete the
- text already in the dialogue box, press <ctrl-U>, then type in the word
- you are looking for and press <return>. (This use of <ctrl-U> applies to
- all dialogue boxes − useful when saving a document under a new name.)
- Remember though that it searches from the cursor downwards, so add a
- <ctrl-uparrow> before calling up the find/replace box. (In the version I
- have, 2.05, the cursor is sometimes not re-displayed in its new position
- after a find/replace has been executed. In other words, it appears to be
- still where you left it but it may actually be further down the document
- so it’s worth getting into the habit of using <ctrl-uparrow> anyway.)
- Also, don’t get tripped up, as I just did. If you set the “case
- sensitive” option, it stays set until you switch it off again. So, if
- you can’t find a word that you know is in there somewhere, check that
- you have not left it in the case-sensitive mode from the last time you
- used it.
- 4.5
- Replacing double spaces − I was trying to do a selective search and
- replace to remove double spaces and replace them with single spaces.
- When I told it to find the next one, it sometimes didn’t appear to mark
- anything. Most peculiar! Eventually, I realised what was happening. The
- text was fully justified and the double spaces (the same would apply to
- finding single spaces) were between the last word on one line and the
- first on the next line. Thus Impression was marking the infinitesimally
- small space at the end of the line, i.e. was marking nothing at all.
- There’s nothing you can do about it (apart from removing the full
- justification) but at least if you are aware of the problem, you won’t
- be so baffled when it happens.
- 4.5
- Searching for hyphens − In some versions of Impression, it is not
- possible to search and replace hyphens. I discovered this because, for
- ease of typing, I was using a double hyphen where I wanted a dash in the
- text, the idea being to replace them later. Impression refused to find
- any occurrences of hyphen-hyphen. Consultation with CC revealed that
- improvements in automatic hyphenation have resulted in this problem. The
- way round it is to search for — and replace it with −. Note the spaces
- after the backslash and before the 45.
- 4.5
- Smart quotes − If you want smart quotes in a text, i.e. the curly ones
- instead of the straight ones on the key next to the return key, you can
- type them in using <ctrl-]> and <ctrl-\> for single quotes and <shift-
- ctrl-]> and <shift-ctrl-\> for double quotes. However, if you think
- that’s a bit of a fag to remember, use the normal quotes and then,
- before printing, save the file (just in case of operator error!), save
- the text with styles (perhaps to a ram disc as it’s only temporary),
- select the whole text (<ctrl-T>), delete it and finally drop the saved
- text back into the document. As the text is re-loaded, quotes are
- automatically ‘smartened’.
- 4.5
- Switching styles on and off − Those of you brought up in the Mac world
- may not have realised, as I didn’t until today(!) that if you want
- something in, say, bold, all you have to do is press <f4> to switch it
- on, type in the bit that is to be in bold and then press <f4> again.
- Obvious? Yes, it may be to those who come new to Impression but for
- those of us steeped in Mac techniques, it comes as a welcome surprise.
- 4.5
- If there are things about using Impression that ‘came as a surprise’ to
- you, send them in to us (preferably on disc) and we’ll share them with
- other Impression users. We may even need an Impression Column.
- 4.5
- • Rotor and other games’ passwords − One way to obtain the Rotor
- passwords (and possibly other games) is to load each of the game’s files
- into !Edit and use the ‘Find’ option to look for the first password.
- When the password is found, the remaining passwords should be in the
- next couple of lines. Andrew Campbell, Devon
- 4.5
- • Sony TV / Monitor − I was told by Beebug that I couldn’t use my Sony
- TV as a monitor with the A3000, but in fact this is quite easy to do.
- The sony TV requires a signal on pin 16 (blanking input) of the Scart
- plug, which can simply be connected to pin 20 (video input). Keith
- Raven, Slough
- 4.5
- • Z88 file transfer − Here is a little utility for people who wish to
- transfer files from the Archimedes straight into suspended memory on the
- Z88. It saves having to break a file into smaller sections first and,
- of course, there is always a memory overhead in having at least part of
- the file held in the Z88 Filer. With this BASIC program, the filer is
- by-passed altogether.
- 4.5
- 10 REM >Suspender
- 4.5
- 20 REM Transfer file from Arc to Z88 suspended memory
- 4.5
- 30 REM ** IMPORTANT: Set z88 receive baud rate at 2400 (in panel) **
- 4.5
- 40 *CAT
- 4.5
- 50 *FX 8,5
- 4.5
- 60 INPUT “Send file? ”file$
- 4.5
- 70 *FX 3,119
- 4.5
- 80 OSCLI(“Type ”+file$)
- 4.5
- 90 FOR i%=1 TO 350
- 4.5
- 100 PRINT “#”
- 4.5
- 110 NEXT i% : REM these pad chars are need for certain types of file
- 4.5
- 120 *FX 3,0
- 4.5
- To load a file into PipeDream, enter “:COM” as the “Name of file to
- load” in the files menu. Then run “Suspender” and immediately press
- <return> on the Z88. Finally, when the BASIC prompt reappears on the
- Archimedes screen, press <esc> on the Z88.
- 4.5
- It is kinder to your disc drive to copy the target file into the
- Archimedes’ RAM filing system first.
- 4.5
- Jonathan Barnes, Watford
- 4.5
- The following Hints and Tips come from Hugh Eagle of the West Sussex
- Archimedes User Group.
- 4.5
- • Disappearing paragraph spaces in FWP – If, at the end of a paragraph,
- you type a space immediately before the carriage return, the carriage
- return will be deleted when you subsequently reformat the paragraph.
- Believe it or not, this is a “feature” of First Word Plus (documented in
- the version 1 manual on page 110)!
- 4.5
- • Loading sprite files – When you double click on a sprite file icon,
- sometimes it is displayed at the bottom left-hand corner of a blank
- screen and sometimes in a !Paint window. This is because the action the
- computer takes when you try to “run” a sprite file depends on the
- contents of the system variable Alias$@RunType_FF9. This variable is
- defined by default, when the Archimedes is switched on, as “ScreenLoad
- %0”. The effect of this is that when you double click on a sprite file
- (type &FF9) icon, the operating system executes the instruction
- *ScreenLoad [filename]; this clears the screen and then displays the
- first sprite in the file at the graphics origin. However, when the
- Desktop Filer “sees” the !Paint application (i.e. when a directory
- window is opened in which !Paint is included) it runs the !Paint.!Boot
- file which, amongst other things, redefines Alias$@RunType_FF9 in such
- a way that when a sprite file is “run” the !Paint application is started
- up (that is if it is not already running) and the file is loaded in.
- 4.5
- • Listing the contents of your (hard) disk – The operating system
- command “*Count :4.$.* RV” will catalogue the contents of the root
- directory and every sub-directory. As explained on pages 279/280 of the
- User Guide, the output from this command can be redirected to the
- printer by adapting the command to “*Count :4.$.* RV {printer: } ”
- 4.5
- Note: the spaces around the curly brackets and the > sign are important.
- 4.5
- This method will redirect the output to the printer without displaying
- it on the screen. An alternative method will send all text that is
- displayed on the screen to the printer as well: first press <ctrl-B>
- (i.e. hold down the ctrl key and simultaneously type B), then issue the
- command “*Count :4.$.* RV” then, when the listing has finished, press
- <ctrl-C>.
- 4.5
- • Removing PC Access – The menu which appears when you click the menu
- button over any of the PC Access icons on the icon bar has no Quit
- option and the application doesn’t seem to appear in the Task Manager
- window. In fact, the application does appear in the Task Manager window
- ... in the “Module Tasks” section. Clicking the menu button over the
- application’s name there and moving to the Task ‘PC Access’ sub-menu
- gives a “Quit” option.
- 4.5
- • Printing via a PC – For some time I have been perplexed to find that
- when I try to print a file created by the Archimedes !PrinterLJ printer
- driver to a LaserJet printer attached to a PC, the printout stops part
- way down the page. At first I thought it must be because of limited
- memory in the printer so I tried creating the file at a lower print
- density but this made no difference to how much of the page was printed.
- 4.5
- I think I have now hit on the answer, namely that, when using the MS-DOS
- Copy command to print a file which includes control codes, it is a good
- idea to use the /b “switch”, using the syntax:
- 4.5
- copy [filename]/b LPT1
- 4.5
- The insertion of /b after the filename causes MS-DOS to copy in “binary”
- mode: i.e. it copies as many bytes as there are in the file. Otherwise,
- in text mode, copying will continue only until the first end-of-file
- marker (Ctrl-Z or ASCII character 26) is reached whereupon it will stop.
- It is of course highly likely that a graphic printfile of many thousands
- of bytes will contain this character several times, so it is not
- surprising that only part of the page is printed!
- 4.5
- • Viewing !Draw files – The standard way to view a draw file is to load
- it into !Draw. However, this has an irritating tendency to place the
- part of the picture you want to see outside the visible window. There
- are (at least) two convenient ways of avoiding this problem:
- 4.5
- One is to load the file into the !Display application from Shareware 26.
- The other is to load it into an Impression frame (or, presumably, a
- frame in one of the other DTP applications). In either case, the drawing
- is scaled to fit the frame (the aspect ratio is preserved, so the
- picture fills either the height of the frame or the width). One
- advantage of Impression is that the frame can very easily be resized and
- the drawing thereby magnified; another is that it makes it very simple
- to display a number of drawings on a page and create an illustrated
- catalogue.
- 4.5
- • Floppy disc E format – So far as I know, the detailed format of ADFS
- discs has not been published either in any of the manuals or in Archive.
- Having recently deleted some files by mistake and been forced into some
- detective work in order to recover them, I thought it might be helpful
- to write down what I have found out about “E” format floppy discs:–
- 4.5
- With two sides, 80 tracks on each side, 5 sectors on each track, the
- disc has 800 sectors of 1024 (&400) bytes each. The sectors can be
- thought of as being numbered from 0 to 799 in the following order:
- 4.5
- Track Head Sector
- 4.5
- 0 0 0
- 4.5
- 0 0 1
- 4.5
- 0 0 2
- 4.5
- 0 0 3
- 4.5
- 0 0 4
- 4.5
- 0 1 0
- 4.5
- . . .
- 4.5
- 0 1 4
- 4.5
- 1 0 0
- 4.5
- . . .
- 4.5
- . . .
- 4.5
- 79 1 4
- 4.5
- Each byte on the disc has a “disc address” equal to the sector number,
- as defined above, times &400 plus the number of bytes into the sector.
- Put it another way:
- 4.5
- the disc address = (((( track * 2 ) + head ) * 5 ) + sector ) *
- &400 + bytes into sector
- 4.5
- Map format − The first two sectors on the disc contain duplicate copies
- of the disc map. The first 64 bytes of the map contain the following
- information:
- 4.5
- byte 0 a checksum byte
- 4.5
- bytes 1/2 the number of bits to the place in the map which marks the
- first free space on the disc, counting from the beginning of byte 1 (if
- there is no free space this number will be zero); the top bit of the 16
- is always set, so, for instance, the value &8310 in these two bytes
- would indicate that the first free space in the map could be found &310
- bits or &310 DIV 8 bytes from byte 1, i.e. at byte &63
- 4.5
- byte 3 &FF
- 4.5
- bytes 4-35 the “disc record” as described on pages 1012/3 of the PRM
- containing various details about the disc size, etc. which are the same
- on all “E” format discs, ending with the Disc ID at bytes 24/5 and the
- disc name from byte 26 to byte 35.
- 4.5
- bytes 36-63 reserved (all zero)
- 4.5
- bytes 64-863 (800 bytes) – the actual disc map.
- 4.5
- Each byte in the map represents one disc sector and the contents of the
- map indicate how the disc is divided up between the various objects
- (directories and files) on it. Each portion of the map is at least 2
- bytes long, it begins with an identifying number (max. 15 bits), ends
- with a 1 in the top bit of the last byte and all the bits in between are
- zero. Thus, for instance, if the file with the identifying number 7
- occupies 3 sectors the relevant portion of the map reads as follows:
- 4.5
- first byte &07
- 4.5
- next byte &00
- 4.5
- last byte &80 (1 in the top bit)
- 4.5
- The lowest identifying number is 2 and is reserved for the four sectors
- which are initialised when the disc is formatted and which comprise the
- two map sectors followed by the two sectors containing the root
- directory. Identifying numbers are then allocated, in order, as new
- objects are created.
- 4.5
- A file may be fragmented into several pieces, in which case several
- portions of the map will contain the same identifying number.
- 4.5
- The portions of the map indicating free space on the disc are linked
- together by a chain of pointers. As mentioned above, bytes 1 and 2, at
- the start of the map sector, point to the first free space in the map.
- At that point there is a similar pointer to the next free space (if any)
- and so on until the last free space is reached, where the pointer is
- zero.
- 4.5
- A defective sector on the disc is identified in the map by number 1.
- 4.5
- Directory structure − Each directory takes up two sectors. As mentioned
- above, the root directory occupies the third and fourth sectors on the
- disc (from disc address &800 to &FFF). Any sub-directory can be located
- by looking up the relevant entry in its parent directory, finding the
- identifying number (in the manner described below) and looking up the
- number in the disc map.
- 4.5
- The first five bytes in a directory contain a checksum byte followed by
- the string “Nick”. Then there are up to 77 entries of 26 bytes each
- representing the various objects (files and sub-directories) in the
- directory.
- 4.5
- The format of each of these entries is:
- 4.5
- bytes 0-9 name of file or sub-directory
- 4.5
- bytes 10-13 load address
- 4.5
- bytes 14-17 execution address
- 4.5
- bytes 18-21 file length
- 4.5
- byte 22 sector offset (see below)
- 4.5
- bytes 23-24 identifying number as used in the map
- 4.5
- byte 25 file attributes.
- 4.5
- If the top 12 bits of the load address are all set (i.e. are &FFF) this
- means that the file is “stamped” and the remainder of the load and
- execution address fields are used to record the file type and date stamp
- as follows:
- 4.5
- load address FFFtttdd
- 4.5
- execution addressdddddddd
- 4.5
- (the bottom byte of the load address field being used for the top byte
- of the 5-byte format date and time record).
- 4.5
- Note: in a disc sector editor which shows the bytes in order with the
- lowest byte of each word first, these 8 bytes will appear as “dd tt Ft
- FF dd dd dd dd”.
- 4.5
- If not all the top 12 bits are set, the load and execution addresses
- will (as their names suggest) determine what the computer does when the
- file is *LOADed or *RUN (or double-clicked from the Desktop).
- 4.5
- The sector offset in byte 22 is used where two files are mapped into the
- same portion of the disc. In such a case the files share the same
- identifying number (in bytes 23/4) but byte 22 indicates how many
- sectors into the portion each file starts.
- 4.5
- A typical example of this would involve two small files each fitting
- into one disc sector (they might for instance be !Boot, !Run or !Sprites
- files within an application directory). Because the minimum size of a
- map entry is 2 bytes representing 2 sectors on the disc, it would be
- inefficient to give each file a separate map entry, so the two files
- would be made to share. In this case, assuming the shared identifying
- number is say 8, bytes 23 and 24 of the directory entries for both files
- would be &08 and &00 but byte 22 would be &01 for the file that occupies
- the first sector and &02 for the second.
- 4.5
- In the usual situation where a file has a map entry to itself, byte 22
- is zero.
- 4.5
- The bits of byte 25 (the file attributes byte) are used as follows:
- 4.5
- bit 0 object has read access for you
- 4.5
- bit 1 object has write access for you
- 4.5
- bit 2 undefined
- 4.5
- bit 3 object is locked against deletion
- 4.5
- bit 4 object has read access for others
- 4.5
- bit 5 object has write access for others
- 4.5
- bit 6 undefined
- 4.5
- bit 7 undefined
- 4.5
- Bits 4 and 5 only have meaning to the network filing system. Bits 2, 6
- and 7 should be set to zero.
- 4.5
- General note: If you want to explore disc maps and directories it is
- very handy to have a disc sector editor such as the !DiscEdit appli
- cation on Careware 2. Failing that it is reasonably easy to construct a
- program to read from a disc sector by sector (rather than file by file)
- and to display the contents. The key to such a program is the SWI call
- “ADFS_DiscOp”. For instance, the BASIC instruction:
- 4.5
- SYS “ADFS_DiscOp”,0,1,address%,buffer%,length%
- 4.5
- will read starting at the “disc address” (as defined above) given in the
- variable address%, the number of bytes given in length% (1024 for one
- sector) into the address in RAM stored in buffer%. Obviously, a certain
- amount of caution is advisable since a very similar command (replacing 1
- with 2 for instance) could result in writing to and corrupting the
- contents of a disc.
- 4.5
-
- 4.5
-
- 4.5
- {4 .5
- • Caverns − A simple map and the passwords are given at the end of the
- magazine on page 60. Neil Berry
-
- Impression Hints and Tips
- 4.6
- Here are a few more hints and tips mostly from the editor’s dabblings in
- preparing the magazine...
- 4.6
- • Dashes − If you, like me, don’t like to see hyphens used where dashes
- should be used − i.e. in places like this − you will probably be sick
- and fed up of typing <alt-153>. (Note that the character in “alt-153” is
- a hyphen, just in case you weren’t aware of the difference.) If you are
- importing text into Impression, occurrences of ‘hyphen hyphen’ will be
- converted automatically by Impression into a long dash — see what I
- mean. Personally, I prefer the shorter one so what I have done is set up
- the abbreviation dictionary with ‘expand as you type’ and used an
- underline character to be turned into a dash. The only drawback is that
- it’s OK for things like the dashes earlier in this paragraph, but if,
- for example, you use dashes in phone numbers, as 0603−766592, the
- abbreviation technique does not work and you are back to <alt-153>.
- Anyone any other ideas?
- 4.6
- • Find styles − If you want to find a style, get up the find/replace box
- with <ctrl-f4> and then click in the menu box to the right of the Find
- box and select the style you are looking for. This will come up as, say,
- “”. Type an “@” after this − which stands for “any text” − and then
- press <return>. This will highlight the whole of the first piece of text
- with that style or effect. Unfortunately, the facility to replace that
- style with another style is not yet working. If you do want to do any
- search and replace on the style names, export the text, with styles, and
- then use another WP such as !Edit to do the searching and replacing
- before returning it to Impression.
- 4.6
- • Rogue effects − Someone sent me a file in which they had used a
- particular font which I did not have so when I loaded the file,
- Impression told me it was changing it to Trinity.medium. I did an edit-
- style and looked at all the style definitions to no avail. Eventually, I
- realised that it must have been used as an effect, so how was I to find
- it and eliminate it or change it to some font I did possess? Because the
- font had been changed to Trinity.medium (i.e. the BaseStyle font) I
- could not pick it out with a visual scan so the first idea was to change
- the BaseStyle to, say, Zapf.Dingbats so that anything which was in a
- different font was obviously an effect or a style. Unfortunately, this
- didn’t reveal the offending effect. At this point, I became convinced
- that I had a non-existent, un-removable effect, i.e. a bug in Impres
- sion. So I sent the offending file to CC who informed me that the
- particular effect WAS in the text and they also showed me how to locate
- it... as follows...
- 4.6
- (Actually, the reason that I couldn’t find the effect was that I had
- already gone through the document adding extra styles and had covered
- this rogue font-change effect with a font-change style of my own. In
- other words, the style, because it was applied later than the effect,
- took precedence.)
- 4.6
- • Finding effects − In the same way that you can find styles (see above)
- you can also find effects as long as you tell Impression that you want
- effects to be shown on the style menu. To do this, locate the file “UK”
- in the Impression “Resources” directory. Load it into !Edit and find
- “Cnf1:” and change it to “Cnf1:E” − that’s a one, not a letter “l”. Save
- the file and shut down and re-start Impression. You then will have
- effects on your style menus and search on {“effectname” }@, as explained
- above.
- 4.6
- • Fast search and replace − There are a couple of very useful keyboard
- short-cuts not documented in the manual which speed up the search and
- replace. When the “text found” box is on screen, <ctrl-R> does a
- “Replace” and <ctrl-N> moves to the “Next”.
- 4.6
- • Keyboard short-cuts − Apart from the ones listed on pages 119ff of the
- Impression manual, here are a few more: (some are mentioned on the menu,
- but not in manual)
- 4.6
- <ctrl-shift-D> go to chapter
- 4.6
- <ctrl-shift-H> produces a bullet i.e. a “•”.
- 4.6
- <ctrl-shift-I> also produces a bullet i.e. a “•”!
- 4.6
- <ctrl-shift-J> produces superscript
- 4.6
- <ctrl-shift-K> produces subscript
- 4.6
- <ctrl-shift-T> save text story
- 4.6
- • Page number justification problems − Some of you may have had
- difficulty getting correct centring or right justification of page
- numbers on footers. This is corrected in version 2.09 − well, almost!
- The footers on right hand pages were wrong last month, when I was using
- version 2.05, (in fact I didn’t even notice!) and the footers on the
- left hand pages would have been wrong this month (with 2.09) if I had
- not found a way round it. If you try to have left aligned page number
- with a right tabbed piece of text, the text suffers a left shift. I’ve
- solved it for now by splitting the footer text into two separate frames,
- one left aligned and the other right aligned. It’s messy, but it works.
- A
- 4.6
-
- Hints and Tips
- 4.7
- • Ballarena − I would advise using the mouse to control your ‘bat’
- because the keyboard is not very responsive. Also, note that the ‘Auto’
- bat does not always respond fast enough to catch the ball, and there is
- nothing you can do about it! I was very disappointed in the final
- message which just congratulates you, and ends your game. The passwords
- are: PUNKANDJUMP, MONTPELLIER, SEA SEX SUN, VL 86 C 010, MOUNTAINEERS,
- GRENOUILLE, BLUBEDILOMAR, BRAIN KILLER, RHYTHM BOX, BOUBOULOID, MENFOU,
- 32 BIT POWER, MARTINI, SEE YOU SOON, ETERNA. Mike Gregory (& Russell
- Lamb).
- 4.7
- • Changing !Edit’s default file types − Answering my own Help!!! plea in
- Archive here’s how to change the default filetypes for !Edit:
- 4.7
- *DIR ADFS::4.$.RISC-OS.!Edit
- 4.7
- (or your path here)
- 4.7
- *GOS
- 4.7
- *L. !RUNIMAGE 8000
- 4.7
- *BREAKSET 8004
- 4.7
- *GO 8000
- 4.7
- *SAVE “!RUNIMAGE” 8000+1F2C0
- 4.7
- 8008 8000
- 4.7
- *BASIC
- 4.7
- *L. !RUNIMAGE 8F00
- 4.7
- $&1B208=“ReadMe” These can be changed
- 4.7
- $&1B214=“DataFile” to suit your needs
- 4.7
- $&1B220=“ExecFile” with any string up
- 4.7
- $&1B22C=“EditFile” to 10chars in
- 4.7
- $&1B238=“!Run” length.
- 4.7
- *SAVE !RUNIMAGE 8F00+1F2C0 8008 8000
- 4.7
- Rob Davison, Southland, New Zealand
- 4.7
- • ‘Cheapo’ dialog boxes − You can make use of Wimp_ReportError instead
- of writing code for a dialog box when programming wimps. The following
- code fragment is an example:
- 4.7
- DEFPROCsave_file(name$)
- 4.7
- IF FNfile_there(name$) THEN IF
- 4.7
- FNdialog(“A file of that
- 4.7
- name exists. Overwrite it?“)=FALSE THEN ENDPROC
- 4.7
- REM save file
- 4.7
- ENDPROC
- 4.7
-
- 4.7
- DEFFNdialog(str1$):!block%=1
- 4.7
- :$(block%+4)=str1$
- 4.7
- SYS“Wimp_ReportError”,block%,
- 4.7
- 19,“Message from
- 4.7
- applic“ TO ,resp%
- 4.7
- =resp%=1
- 4.7
- where the string “Message From Application” is <20 characters in length.
- 4.7
- The only disadvantages are that all other desktop activity is suspended,
- the machine beeps (if wimpflags bit 4 is not set) and that the user has
- to answer “OK” or “CANCEL” instead of the more logical “YES” or “NO”.
- However, this saves a great deal of programming and can be very useful
- at times (This is why FWP2 stops printing − See Archive 3.10 p 25). Rob
- Davison, New Zealand.
- 4.7
- • Cleaning A310 keyboard contacts − I recently had a very nasty
- intermittent fault on my A310. It began as a line of 222222222’s being
- printed at the cursor, for no apparent reason. Also the ‘2’ key of the
- numbers keypad wouldn’t function occasionally. This was accompanied by a
- more worrying symptom where the screen display would suddenly go hay-
- wire and only occasionally would right itself after switching the
- machine off and then on.
- 4.7
- Eventually, it was cured by cleaning the key-contact of the ‘2’ (keypad)
- and on the basis of “If it works, don’t fix it”, I didn’t clean any
- other keys. After having the machine checked at a local dealer (£17.50)
- and some discussion with Archives’ Technical Help, it was assumed that
- the screen break-up was due to CMOS *Configuration settings somehow
- being changed to Monitor-Multisync, by the spurious keyboard input. The
- problem has not occurred since.
- 4.7
- For anyone else with keyboard problems, here’s how I cleaned mine: Lay
- the keyboard upside-down and remove all 8 screws under the keyboard base
- and gently lift off the base. Remove the 6 larger screws, securing the
- PCB to the keyboard top-cover. Lift out the complete PCB and keys unit.
- The keytops are all secured in a frame which is, in turn, secured by 20-
- odd small screws from the PCB underside. Take them all out (and put them
- somewhere safe) and, keeping the whole kaboodle together with a firm
- grip, turn it over and set it down right-side up. The complete set of
- keys can now be lifted slowly off the PCB, exposing the rubber contact/
- covers. These are glued with a weak glue. I found that all the rubber
- bits stayed stuck to the PCB. I gently peeled away the rubber contact/
- cover at the offending key position and marvelled at how the dirt had
- managed to penetrate so far, considering that the cover was stuck down.
- The keyboard key contacts (A310) are just gold plated discs of PCB
- copper, easily cleaned with switch cleaner and a non-hairy paper-towel
- or cloth. If you have to blow away any bits, use a camera ‘puffer
- brush’. If you have to use your mouth to blow away grit, crumbs etc,
- wait for any teeny drops of condensation to evaporate. Spit doesn’t make
- a good contact cleaner and some spirit-based cleaners may tend to
- dissolve the pcb-surface varnish which will be smeared over the
- contacts’ surface. Your local electronics hobby shop (e.g. Tandy) should
- have cans of switch-cleaner at £2 − £3 (which is a lot cheaper than £120
- for a new keyboard(!) and well worth the extra effort of DIY).
- 4.7
- D.P.Allen, Surrey
- 4.7
- • Data cartridges for tape streamers revisited − Further to the hint in
- 3.6 p2, the metal variety of DAT can become unreliable after three or
- four writes and so it is better to use the non-metal variety e.g.
- Memorex tapes. Mr Chapman, London
- 4.7
- • RISC-OS printing hints − Printing out with the RISC-OS printer drivers
- is very easy. However I found several areas which are not well explained
- and one or two things which are down right misleading!
- 4.7
- • PRM pages 1526-1528 sprite plotting commands must be with reference to
- the address of the sprite not the name, so if you use
- 4.7
- SYS “OS_SpriteOp”,&122,
- 4.7
- spriteaddr%,“name”,0
- 4.7
- ,xpos%,ypos%
- 4.7
- then, when printing, the error “Sprite Not known” will be returned. The
- solution is to use &222 and an address instead of the sprite name.
- Addresses for a named sprite can be found with
- 4.7
- SYS“OS_SpriteOp”,&118
- 4.7
- addr is in R2 on exit − see PRM page 406.
- 4.7
- • PRM page 1532. Always use −1 (for current) as the destination mode
- with “ColourTrans_Select-Table” if you specify a mode (even the current
- one) ColourTrans will not set up the table correctly resulting in
- strange looking sprites on printout.
- 4.7
- • When rendering Draw objects remember to decrease ‘flatness’ to a lower
- value. A useful way of calculating it is to divide the default (512) by
- the print resolution divided by 90 eg. flat= 512/(printxres%/90) where
- printxres% might be 300 − as read from
- 4.7
- SYS “PDriver_Info” TO,printxres%
- 4.7
- printyres% the 90 comes from a normal approximately 90 dots per inch on
- screen. Rob Davison, Southland, New Zealand
- 4.7
- • Saving the CMOS RAM settings − In recent editions of Archive (e.g.
- 4.3, p.10 and 4.5, p. 21) there have been repeated mentions of the
- problem which arises when a battery failure deletes all the information
- in the CMOS RAM.
- 4.7
- There is one very simple way of solving this problem: On Careware Nº 6
- you will find the application !SysUtil by Jon Marten; one of the choices
- it offers is “Save Configuration”!
- 4.7
- All you have to do is copy the Utility and the “ConfigFile” it produces
- to some disc where they are easily accessible − not the hard disk!
- 4.7
- After the dreaded memory loss you simply load !SysUtil and drag the
- ConfigFile icon onto the !SysUtil icon and confirm that you want to
- change the configuration. Jochen Konietzko, Koeln, Germany
- 4.7
- • Shutdown of hard drives − During the recent experience I have had due
- to the volume of hardware I’ve been setting up and testing, the
- following items have come to light.
- 4.7
- MR45’s seemed to be suffering from corruption but, when reformatted, the
- problem went away, so where did the corruption come from?
- 4.7
- A little further investigation revealed that a verify scan caused the
- Closedown procedure of the drive not to occur.
- 4.7
- It was found that, in order to close the drive down properly, a *bye and
- two ªShutdowns were required! At first, this was thought to only relate
- to MR45’s but, in fact, it has been found that this is not so, and even
- my own machine (A440/1 with standard Acorn hardware) does similar
- things.
- 4.7
- So, how do you know whether your hard drive is shut down properly? If an
- <f12> is followed by a *bye, a staccato blip from the drive LED should
- occur and a short sharp click noise should emit from the drive itself.
- This is not the closedown condition.
- 4.7
- A *shutdown will now give a flickering performance from the drive LED
- and a multiple clicking from the drive lasting about half a second.This
- is the shutdown condition with the heads parked and isolated from the
- discs and closedown of the system can now occur. Ray Maidstone, Norwich.
- 4.7
- • !UIM_Hack update (cf Archive 3.10 p 9) − This utility allows you to
- edit characters in The 4th Dimension’s U.I.M. game. It has now been
- updated and improved by the author, David Sheperdson, and has been put
- on this month’s program disc.
- 4.7
- Impression Hints and Tips
- 4.7
- • Beware thin lines − It seems that Impression can’t cope with the very
- thinnest lines that Draw can produce. It does not display them properly
- on the screen and sometimes doesn’t print them properly. The answer is
- to use 1 mm lines instead. This came to light when Brian Cowan was using
- graphs generated by the graph plotting utility (on Shareware Nº 31)
- which apparently uses these thin lines. (This has only been tested in
- version 2.05.)
- 4.7
- • Double-clicking on a graphic opens the “alter graphic” window, (For
- those who don’t read manuals.)
- 4.7
- • Help! − Does anyone know how to create a new Master Page based on an
- existing master page? It’s a real pain to have to change the margins
- every time you create a new master page. Why can’t you have a new master
- page just slightly different from an existing one? The particular
- application was where I wanted to try two, three, four, five columns
- etc. for a document and every time I wanted to change the number of
- columns, I had to create a new master page, changing the margins from to
- the 5 mm I wanted before changing the number of columns and the inter-
- column gap. (Mind you, I did find one short-cut as a result of having to
- do this over and over again. If you click in the first margin box, you
- can use <ctrl-U> to remove the “12.7mm”, then press <5> and then <down>
- will move you to the next box and you can repeat the <ctrl-U>, <5>,
- <down> for each box. This applies to most of the dialogue boxes − <down>
- moves you to the next box requiring input. Yes, I know it says this in
- the manual, but I didn’t see it.)
- 4.7
- Anyway, can I put my plea another way? Is there any way of editing a
- master page other than sliding the boxes around? Can you edit, by
- entering numbers, the sizes of the margins, for example?
- 4.7
- • Search & replace again − We mentioned last month that, when doing a
- find and replace, <ctrl-N> finds the Next occurrence, <ctrl-R> does a
- Replace of the marked text. Be warned though that, if the find box is
- on-screen, <ctrl-A> no longer deletes the character at the cursor (as
- <copy> does) it forces All the replaces to occur from the cursor
- downwards to the very end of the document. I found this the hard way
- while attempting to do a selective search and replace at the top of a
- large document. I was changing a column of words into a list by
- replacing
- 4.7
- with a comma and a space. You can just imagine the havoc that the
- “replace all” command reeked on my (unsaved!!!) document. You have been
- warned! By the way, <ctrl-E>, presumably relating to Every or End, has
- exactly the same effect as <ctrl-A>. (This has only been tested on
- 2.09.)
- 4.7
- • Transferring text between documents − In Archive 4.2 p.8, there was a
- hint about the transfer of text between two documents. The implication
- was that this was not possible with Impression. This is not true − it is
- just done differently. You select the text in question, press <ctrl-C>,
- move to the appropriate spot in the other document, click once and
- insert the text with <ctrl-V>! Jochen Konietzko, Koeln, Germany A
- 4.7
-
- Hints and Tips
- 4.8
- • ARM code errata − The following is for all those who have an unshak
- able faith in the integrity of Acorn’s code:
- 4.8
- The code given to return from SWI “OS_ BreakPt” on page 736 of the PRMs
- is incorrect. The following works.
- 4.8
- .backtobreak%
- 4.8
- SWI “OS_EnterOS”
- 4.8
- ADR R14,breaksave
- 4.8
- LDMIA R14,{r0-r14 }^
- 4.8
- LDR R14,[R14,#15*4]
- 4.8
- ADD R14,R14,#4
- 4.8
- MOVS PC,R14
- 4.8
- The code given on page 231 of the old BASIC User Guide (under CALL) is
- incorrect. For example, to use MATCH, the line tokenisation routine, the
- following code will work. This has been corrected in the new BASIC User
- Guide.
- 4.8
- .tokenise
- 4.8
- STMFD R13!,{r14 }
- 4.8
- ADD R0,R14,#18*4
- 4.8
- ADR R1,source
- 4.8
- ADR R2,dest
- 4.8
- MOV R3,#1
- 4.8
- MOV R4,#0
- 4.8
- ADR R14,cominghome
- 4.8
- MOV PC,R0
- 4.8
- .cominghome
- 4.8
- LDMFD R13!,{pc }
- 4.8
- .source
- 4.8
- EQUS STRING$(90,CHR$(0)) ALIGN
- 4.8
- .dest
- 4.8
- EQUS STRING$(90,CHR$(0)) ALIGN
- 4.8
- J Heher, South Africa
- 4.8
- • BASIC printing to a DeskJet Plus − The April issue of Archive
- contained a Help!!! plea about printing from Archimedes BASIC to a
- DeskJet 500. I have a DeskJet Plus and have successfully printed from
- BASIC. For reference, my printer is normally set with the function
- switches 6 and 8 in bank A and 2 in bank B up, all others are down.
- 4.8
- To print, I use the command VDU 2,1,27,1,38, 1,107,1,49,1,71 (see Line
- Termination in Appendix 8.19 of the Owner’s Manual). Here is an example
- of how it can be used:
- 4.8
- 10 REM >PrintTest
- 4.8
- 20 VDU 2,1,27,1,38,1,107,1,49,1,71
- 4.8
- 30 PRINT “TEST OF NORMAL PRINTING”
- 4.8
- 40 VDU 1,27,1,38,1,100,1,49,1,68
- 4.8
- 50 PRINT “This is underlined”
- 4.8
- 60 VDU 1,27,1,38,100,1,64
- 4.8
- 70 VDU 1,27,1,40,1,115,1,51,1,66
- 4.8
- 80 PRINT “This is BOLD printing”
- 4.8
- 90 VDU 1,27,1,40,1,115,1,48,1,66
- 4.8
- 100 VDU 1,27,1,40,1,115,1,50,1,48, 1,72
- 4.8
- 110 PRINT “This is 20 PITCH”
- 4.8
- 120 VDU 1,27,1,69 :REM reset printer
- 4.8
- 130 VDU 3
- 4.8
- 140 END
- 4.8
- A Kitchenside, Weybridge
- 4.8
- • Big memory tips − As a footnote to my own article in last month’s
- Archive on making best use of machines with more than 1M memory, I’d
- like to add one more tip. I was reminded by a review of Protext, which
- noted that the current version does not multi-task, that my eleventh tip
- might have been, “boycott non multi-tasking packages”. Since, with 1M,
- you couldn’t really multi-task two significant applications, this was
- not a problem. Now, it’s a real pain in the neck not to be able to have
- several applications with simultaneously active windows, much of the
- power and ease-of-use of RISC-OS is being un-used and it’s annoying
- knowing that 3M of your upgrade is being wasted!
- 4.8
- So, unless there’s a really good reason such as a time-critical sound
- sampler or video screen grabber, I suggest that we boycott such
- packages. Then, software producers would have to bring them up to date
- and not try to palm us off with “Arthur programs with !Run and !Boot
- files”. In an ideal world, software sellers would refuse to stock them
- but at least they could be marked as such, perhaps indicating their
- antiquity by listing them in a suitable script? Stuart Bell, Brighton.
- 4.8
- • C book − I was recommended a good C book which I used on a C short
- course I attended: The Waite Group’s “New C Primer Plus”, First Edition
- 1990, editor Howard W Sams & Co, ISBN 0−672−22687−1. It covers ANSI C,
- UNIX, Microsoft C and Turbo C. S. Stel, Netherlands.
- 4.8
- • ChangeFSI update − A new version of ChangeFSI v0.79 is available from
- Acorn Direct for £19.95. This will handle more image formats than would
- v0.69: Degas PI1, PI2 & PI3, !Translator Clear, MacPaint 579x720x1 bit/
- pixel, ZSoft .PCX, Windows3 .BMP, Pineapple 16 bit/pixel, UNIX rle, PC
- TGA. Unfortunately it will not run from the desktop under !ChangeFSI
- (Shareware Disc 21) as is. This is because version 0.79 is 94 Kbytes
- long, compared with 74K for v0.69. The solution is to edit the !Run file
- of !ChangeFSI and increase the WimpSlot from 128K to 160K. All is then
- well. A Quayle, Chester
- 4.8
- • C txt library − This idea was inspired by the article ‘Introduction to
- C’ – Part 5, in Archive 3.6. This gave a complete RISC-OS application
- using the libraries supplied with Release 3 of Acorn C. In particular,
- it used the ‘txt’ library to provide a window to display text generated
- by the sample program. This requires a minimum of effort by the
- programmer since the library looks after most of the problems.
- 4.8
- Although it works as described, it has two major disadvantages. The
- first is the slow speed during text generation. The second is the
- operation of the window controls. In particular, the cursor control keys
- cannot be used to move the text through the window, the close icon has
- no effect and the vertical scroll bars can only be dragged. Here are
- some techniques which overcome these problems.
- 4.8
- Improved text generation speed turns out to be a very simple modifi
- cation since the cause of the slow operation is the redrawing of the
- window for every item added to the text buffer using, for example, the
- txt_insertstring function. Two extra lines are required; the first turns
- off the display updates when text generation starts and the second turns
- it back on when the operation is complete. The lines shown below should
- be inserted immediately after the visdelay_begin() statement and
- immediately before the visdelay_ end() statement in the original program
- function sysvars_to_text().
- 4.8
- /* turn off display update */
- 4.8
- txt_setcharoptions(t, txt_DISPLAY, FALSE);
- 4.8
-
- 4.8
- /* turn on display update */
- 4.8
- txt_setcharoptions(t, txt_DISPLAY, TRUE);
- 4.8
- Improving text window control requires rather more code but again the
- principle is fairly straightforward. Firstly an event handler has to be
- registered for the text window following its successful creation by the
- txt_new() function using the following statement:
- 4.8
- /* register the text window event handler */
- 4.8
- txt_eventhandler(t, user_txevent, NULL);
- 4.8
- This registers the function user_txevent which will be called to process
- text window events.
- 4.8
- The function itself has to process all the events which the user
- requires. A sample function is given below which is commented to show
- which events are being processed. The keyboard key macro definitions
- given in ‘akbd.h’ are used for consistency but, in addition, the ‘Home’
- key must also be defined using a macro as this is omitted from ‘akbd.h’.
- The actual key values required are defined in the PRM, page 1198 and the
- macro definitions are given in file ‘akbd.h’. Note, however, that the
- definitions given for both akbd_ PageUpK and akbd_PageDownK are wrong so
- I have not used these but used their correct definition in the following
- code. The value txt_ EXTRACODE is added to the key value to represent
- the equivalent window operation. A full list of these is given on page
- 325 of the ANSI C Release 3.
- 4.8
-
- 4.8
- #include “akbd.h”
- 4.8
-
- 4.8
- #define HOME (30)
- 4.8
-
- 4.8
- /***********************************
- 4.8
- user_txevent text window event handler
- 4.8
- t text object
- 4.8
- h event handle
- 4.8
- ***********************************/
- 4.8
- void user_txevent(txt t, void *h)
- 4.8
- {lines ; /* number of lines in window */
- 4.8
-
- 4.8
- h = h;
- 4.8
- while (txt_queue(t) > 0)
- 4.8
- {number of lines visible in window */
- 4.8
- lines = txt_visiblelinecount(t);
- 4.8
-
- 4.8
- /* process the next user event code */
- 4.8
- switch (txt_get(t))
- 4.8
- {+ akbd_Fn+127:
- 4.8
- /* close window icon */
- 4.8
- txt_hide(t);
- 4.8
- break;
- 4.8
-
- 4.8
- case akbd_UpK:
- 4.8
- case txt_EXTRACODE + akbd_UpK:
- 4.8
- case txt_EXTRACODE + akbd_Sh + akbd_Ctl + akbd_UpK:
- 4.8
- /* scroll up one line */
- 4.8
- txt_movevertical(t, –1, TRUE);
- 4.8
- break;
- 4.8
-
- 4.8
- case akbd_DownK:
- 4.8
- case txt_EXTRACODE + akbd_DownK:
- 4.8
- case txt_EXTRACODE + akbd_Sh + akbd_Ctl + akbd_DownK:
- 4.8
- /* scroll down one line */
- 4.8
- txt_movevertical(t, 1, TRUE);
- 4.8
- break;
- 4.8
-
- 4.8
- case akbd_Sh + akbd_UpK:
- 4.8
- case txt_EXTRACODE + akbd_Sh + akbd_UpK:
- 4.8
- /* scroll up one page */
- 4.8
- txt_movevertical(t, -lines, FALSE);
- 4.8
- break;
- 4.8
- case akbd_Sh + akbd_DownK:
- 4.8
- case txt_EXTRACODE + akbd_Sh + akbd_DownK:
- 4.8
- /* scroll down one page */
- 4.8
- txt_movevertical(t, lines, FALSE);
- 4.8
- break;
- 4.8
-
- 4.8
- case akbd_Ctl + akbd_UpK:
- 4.8
- case HOME:
- 4.8
- /* move to start of text */
- 4.8
- txt_setdot(t, 0);
- 4.8
- break;
- 4.8
-
- 4.8
- case akbd_Ctl + akbd_DownK:
- 4.8
- case akbd_Sh + akbd_CopyK:
- 4.8
- /* move to end of text */
- 4.8
- txt_setdot(t, txt_size(t));
- 4.8
- break;
- 4.8
-
- 4.8
- default:
- 4.8
- break;
- 4.8
- }
- 4.8
- }
- 4.8
- return;
- 4.8
- }
- 4.8
- David Scott, Stockport
- 4.8
- • Connection problems − If you are having connection problems with RS423
- connectors, or video or printer − or a dongle, it may be because the
- plugs are not ‘going home’ properly into the sockets on the back of the
- computer. I have noticed this particularly on A540’s, but it could also
- occur on other Archimedes computers. This may be because the fixing
- pillars either side of the socket are too high. The solution it to take
- a pair of pliers (or a box spanner if you have a suitable sized one) and
- remove each of the pillars in turn, take off the washer and screw the
- pillar back in. That extra millimetre can make all the difference.
- 4.8
- • CPC monitor − When my multisync died on me suddenly and I was forced
- to make do with what I had − a well worn Amstrad CPC green screen
- monitor. In practice it was fairly easy to connect the six-pin CPC
- connector to the nine-pin connector on the A3000:
- 4.8
- Archimedes CPC
- 4.8
- 1, 2 & 3 − 6
- 4.8
- 6, 7, 8 & 9 − 5
- 4.8
- 5 − 4
- 4.8
- Naturally, it is impossible to use the multisync modes but it certainly
- is almost as sharp a picture on the tube as on my multisync and much
- cheaper. If your main interest is games I wouldn’t recommend it but for
- most business uses it is perfectly all right. I guess you could get a
- second hand green CPC monitor for next to nothing in the UK as many
- owners have exchanged them for the new CPC monitors. Ask your local
- dealer! A spare monitor could come in handy any day! Tord Eriksson,
- Sweden.
- 4.8
- • !Edit − For what seems like an eternity I have been wrestling with the
- problem of importing text from a wordprocessor (in my case View). What I
- wanted to do was free the text from newline characters in order that, on
- loading it into Ovation, it could be formatted to new column width, in
- whatever point size, without the newline control code producing extra
- linefeeds. At the same time, it should retain the carriage returns
- marking the paragraphs and multi-line spacing. This way I did not lose
- all the style. What follows is how I do it . It might seem obvious but
- it could help someone who is as thick as me. If I have missed the point
- would some kind person tell me before I go mad.
- 4.8
- After loading your text into !Edit, go through the text ensuring that
- there are double returns at the end of each paragraph and on multiple
- line text like program listings or poetry.
- 4.8
- My technique is firstly to change double returns into something which is
- unlikely to appear elsewhere in the text, thus:
- 4.8
- Press <F4> to select Find
- 4.8
- In the Find dialogue box enter \n\n <return>
- 4.8
- In the Replace dialogue box enter ZCZC<return>
- 4.8
- Click on the Magic Character box
- 4.8
- Click on the Go box
- 4.8
- Click on End of File Replace
- 4.8
- Click on Stop
- 4.8
- Press <ctrl-up> to move the cursor to the top
- 4.8
- Now, to replace the single returns:
- 4.8
- Press <F4> to select Find
- 4.8
- In the Find dialogue box enter \n <return>
- 4.8
- In the Replace dialogue box press <space>
- 4.8
- Click on Go
- 4.8
- Click on End of File Replace
- 4.8
- Click on Stop
- 4.8
- Press <ctrl-up>
- 4.8
- Then, to restore the double returns to single ones:
- 4.8
- Press <F4> to select Find
- 4.8
- In the Find dialogue box enter ZCZC<return>
- 4.8
- In the Replace dialogue box enter \n <return>
- 4.8
- Click on Go
- 4.8
- Click on End of File replace
- 4.8
- Click on Stop
- 4.8
- You should have your text with the paragraph and multi-line spacing
- intact. (Simplified from a hint sent in by R Follett, Winnersh, Berks.)
- 4.8
- • Improving sound quality − Further to the comments by Jeremy Mears
- (Archive 4.7 p 21) there is no need, on the A3000, to actually solder to
- the motherboard. You can make contact to the appropriate resistors using
- micro test clips (Tandy − £1.50 for four). This would, I suppose, still
- invalidate the warranty but is less obvious than blobs of solder on the
- p.c.b.! To get access to the resistors, you have to remove the disc
- drive by unscrewing it from underneath. R86 is under the keyboard side
- of the drive whereas R99 is under the middle of the drive. Pin 1 of the
- expansion port is the furthest right (looking from the keyboard side of
- the computer). Gerald Williams, Aldershot.
- 4.8
- • Multiple height and width text printing − I know that the emphasis
- these days is on programs which multi-task and use mode 12 on the
- desktop but not every program is suitable for this and some of these
- programs require larger than usual height characters.
- 4.8
- I am (slowly) developing a word game for the Archimedes, from one I
- wrote last year on my Model B. The “B” version uses mode 2, with double
- height routines written in machine code for speed. The original version
- of this code was quite “illegal” and would not work on a Master but it
- was fast! With it, I could also have text printed 3 or even 4 times
- normal height just as quickly. However, I am new to the Archimedes and
- ARM code is currently beyond me, so after trying various routines in
- BASIC I came across VDU23,17,7. This gives characters at any height and
- any width and is very fast! I can even get half width which gives the
- impression of mode 1 characters in mode 2. Also, it works in most Screen
- modes (except 3, 6 & 7).
- 4.8
- I’ve put together a short routine which demonstrates how easy and fast
- this routine is. To use it, all you have to do is append the PROCedure
- to your program and call it with the colour you wish it to appear in,
- the X & Y positions, the height and width of the characters and the
- Text$ − the routine will do the rest! One point to bear in mind,
- however, is that text is printed using the graphic cursor, i.e. under
- VDU 5 and MOVE or PLOT, rather than the text cursor and VDU 31, X%,Y%.
- 4.8
- Even though this demonstration program is about 20 lines long, the only
- bits you need are in PROCtext(colour, X_co_ord, Y_co_ord, Height, Width,
- Text$). The function FNvdu simply returns the text width of the screen
- mode window in use and this is used to check if lines are too long in
- the first line of PROCtext. The second line in PROCtext is personal as I
- like being able to centralise text without effort! To do so, just set X%
- to -1. The %110 sets bits 1 and 2 so that both characters and spacing
- are altered at the same time. %100 sets spacing, while %010 will alter
- just character sizes. It is also possible to use 0.5 as Height or Width
- but that works better in “chunky” modes, like 2 rather than 12. When the
- width is set to an odd number, the “auto-centralising” is sometimes a
- little off so you may prefer to set up the X co-ord manually.
- 4.8
- REM >$.Height/Wid.!RunImage
- 4.8
- :
- 4.8
- DIM block% 12, output% 12
- 4.8
- MODE12:COLOUR3
- 4.8
- :
- 4.8
- PROCtext(1,-1,1,2,3,“Multi Height & Width!”)
- 4.8
- PROCtext(2,-1,4,2,1,“Double Height, Normal Width”)
- 4.8
- PROCtext(3,-1,7,1,2,“Normal Height, Double Width”)
- 4.8
- PROCtext(4,-1,10,3,3,“3 * 3 Format”)
- 4.8
- PROCtext(5,-1,15,4,1,“Ridiculous! 4 X 1 !!”)
- 4.8
- PROCtext(6,-1,20,1,1,“You should reset the height & width
- 4.8
- before finishing”)
- 4.8
- PROCtext(6,-1,21,1,1,“but as it stands the PROCedure will
- 4.8
- do this anyway”)
- 4.8
- END
- 4.8
- :
- 4.8
- DEFPROCtext(C%,X%,Y%,H,W,T$)
- 4.8
- F%=FNvdu
- 4.8
- IF F%-(LENT$*W)<=0 THEN ERROR 300,“Line too long”
- 4.8
- GCOL C%
- 4.8
- Y%=1000-(Y%*32)
- 4.8
- IF X%=-1 THEN X%=(F%-LENT$*2)/(W*2)
- 4.8
- IF W=1 THEN X%=(F%-LENT$)/4
- 4.8
- X%=X%*32
- 4.8
- VDU 23,17,7,%110,W*8;H*8;0;
- 4.8
- VDU 5,25,4,X%;Y%;
- 4.8
- PRINT T$
- 4.8
- VDU 4,23,17,7,%110,8;8;0;
- 4.8
- ENDPROC
- 4.8
- :
- 4.8
- DEF FNvdu
- 4.8
- !block%=256
- 4.8
- block%!4=-1
- 4.8
- SYS“OS_ReadVduVariables”,block%,
- 4.8
- output%
- 4.8
- =!output%
- 4.8
- • Off screen desktop windows − Normally, the filer and switcher windows
- are forced to stay within the confines of the screen but, by altering
- their template files, it is possible to make them move ‘off screen’ and
- thus help to reduce window ‘clutter’.
- 4.8
- To do this, you have to copy the window templates from the DeskFS to a
- directory called Templates. First, create a directory called Templates
- in the root directory of your harddisc or ‘workdisc’ and then type the
- following:
- 4.8
- *deskfs
- 4.8
- *copy templates.filer scsifs::scsidisc4.$.templates.filer
- 4.8
- *copy templates.switcher scsifs::scsidisc4.$.templates.filer
- 4.8
- (You can also copy netfiler, palette and wimp windows across if
- required.)
- 4.8
- Load the window template data into !FormEd (Shareware Disc 20) and set
- the ‘no bounds’ option for each window. Then, edit your disc !boot file
- to include the following line:
- 4.8
- Set Wimp$Path scsifs::scsidisc4.
- 4.8
- (or whatever your system is!) Don’t forget the full stop at the end.
- This points Wimp$Path in the direction of the updated windows.
- 4.8
- Finally re-boot your machine to see the result! M Roscoe, Ealing
- 4.8
- • PrinterDM with the Star LC24−10 − I was interested to see the note on
- !PrinterDM and the LC24-10 in March’s edition of Archive. May I draw
- your attention to the “Hint and Tip” which I had published in the March
- edition of Risc User on the same subject but concerning a different
- problem. I was initially disappointed in the results I obtained with
- Impression Junior (and from the Ovation test disc and, to a lesser
- extent, !Draw printouts). This was due to some lines of text having a
- marked “slewed” effect. After speaking to Star, and much sleuthing, I
- tracked down the problem to the very same line in the PrData file of
- !PrinterDM (version 1.12). There is apparently some incompatibility
- between the Star and the Epson LQ800. The former does not like the “zero
- absolute tab” command used to obtain the CR without LF. The solution was
- to substitute the commands used in the FX80 module, although modified to
- use the correct line feed command for 24 pin printers. With my version
- of !PrinterDM I have not experienced any squashed text with the 24/180
- inch feed (could the writer have been in IBM mode where the command
- gives n/216 inches rather than n/180 inches?) but the bigger feed
- suggested in March’s tip could equally well be used. The modified line
- is as follows:
- 4.8
- line_epilogue “<27>A<0><13><27>2<27>J<24>”
- 4.8
- I’m surprised that this matter has not previously been commented on,
- especially as I think it also applies to the XB24-10. A.F. Taylor,
- Poole
- 4.8
- • Quattro to Schema transfer − To move data files from Quattro, first
- save the file with a WKI extension. Then you can use Schema’s !sch123 to
- translate the file into Schema format. This method leaves all sorts of
- spurious bits and pieces which have to be edited out by hand but it does
- work. M Green, Devon
- 4.8
- • Quitting First Word Plus − If you quit First Word Plus (release 2)
- from the task manager while a text file is loaded, you will be thrown
- out of the desktop. If other applications are running that may object
- e.g. Draw, Paint, etc, they will announce what is about to happen and
- give you a chance to prevent it. Otherwise you will lose any files that
- you may have been working on in First Word Plus. R Bunnett,
- Swanley
- 4.8
- • Reading disc names − For those software writers who need to check that
- the user has inserted an appropriate disc in the disc drive the
- following function returns the name if the disc currently inserted:
- 4.8
- DIM block% 5
- 4.8
- :
- 4.8
- DEF FNdiscname
- 4.8
- SYS “OS_GBPB”,5,,block%
- 4.8
- ?(block%+?block% +1)=13
- 4.8
- =$(block%+1)
- 4.8
- M Sawle, Hampshire
- 4.8
- • !Schema VAT rate − New spreadsheets are created with various user
- names available, one of which is “Vat”. To change this from 0.15 to
- 0.175, look in the !Schema directory and then in the Menu directory and
- you should find a file called StartUp. This has a write-lock on it so
- you will have to use ‘Access’ off the filer menu to enable it to be
- changed. At the end of this file are a number of lines that start with
- ‘putusn’, the first of which is the Vat rate which simply needs to be
- changed before the file is again saved and the write-lock access
- restored. Ian Hamilton, Harrow.
- 4.8
- • Spaced filenames − If you want a <space> in a disc or file name, use a
- hard space. This is available by pressing either <alt><1><6><0> or
- <alt><space>. You should note that if you do use it then you can’t use
- the copy key on a catalogue because the Archimedes thinks that the
- character is a normal space (which is illegal in a filename). E Hughes,
- Derbyshire
- 4.8
- • Twin World cheats − The file SavedGame can be edited using !Edit to
- cheat. Byte values of interest include:
- 4.8
- Byte 1 = Level (Maximum = 22 = &16)
- 4.8
- Byte 4 = Red Spells (Maximum 99 = &63)
- 4.8
- Byte 5 = Blue Spells (Maximum 99 = &63)
- 4.8
- Byte 6 = Green Spells (Maximum 99 = &63)
- 4.8
- Bytes 8-11 = Score, low byte first. (Maximum = 999999 = &F423F )
- 4.8
- Byte 12 = Lives (Maximum = 9 or 10 = &9 or &0A)
- 4.8
- Remember all value are in hex, so use the magic character option in
- !Edit’s Find. Stuart Turgis
- 4.8
- • TwinWorld hints
- 4.8
- − Owls in the forest can be killed by jumping up and firing.
- 4.8
- − Similarly, on some occasions you will have to jump, but fire on the
- way down to hit denizens close to you.
- 4.8
- − Jump between worlds whenever possible − if you loose a life, you’re
- taken back to the last time you changed worlds.
- 4.8
- − Stamping your feet can reveal objects − either treasure or keys.
- 4.8
- − Beware of calling the genie when you are already carrying two other
- sorts of objects (remember the horn is one), because you won’t be able
- to buy an object which you don’t already hold.
- 4.8
- − Beware when shooting the three-headed dragon. If you don’t shoot the
- head furthest away from you, it flies away from you and fires an almost
- continuous salvo.
- 4.8
- − Watch out for extended jump − you can sometimes use it when you don’t
- realise − on some screens it’s essential and you may only have a limited
- amount.
- 4.8
- − Watch out for the parachute − in the last few levels I found I
- couldn’t get rid of it and it limited my objects to just two types.
- 4.8
- − When firing at the bird − if you duck, it flies lower to avoid your
- fire. Stand until the bird is fairly close, then crouch and fire.
- 4.8
- − When the giant clam fires at you, or the Big eye, if you run so the
- ‘bullet’ is off the screen it will disappear.
- 4.8
- Impression
- 4.8
- Hints & Tips
- 4.8
- Bruce Goatly (BG), who is busy writing a book about using Impression,
- very kindly sent us some hints & tips (in return for permission to use
- our H&T in his book!). Most of the rest of the H&T are from the editor’s
- experiences with the unreleased version 2.09. (Version 2.10 is not ready
- for release so 2.05 is still the latest officially available version.)
- 4.8
- • Abbreviation expansion − Use it to correct common spelling errors or
- to enforce house style (I often type ‘ans’ for ‘and’ and ‘thw’ for
- ‘the’, and the house style for my book is ‘disk’ whereas I almost always
- spell it ‘disc’). BG.
- 4.8
- • Date and time format − As I continually forget what day it is, I use
- the Insert date option quite a lot. If you want to change the format of
- the date (the default is in the form 6th April 1991), load the !Run file
- into Edit and alter the definition of the variable Impression$DateFormat
- (see pp. 337-339 of the User Guide, on using system variables).
- Similarly, you can alter the time format by editing
- Impression$TimeFormat. BG.
- 4.8
- • Dongle connection problems − If you are having problems with a dongle
- that keeps saying it is not present and you find that you need to wiggle
- it (just a little bit!) to recognise its presence, go back and read the
- hint above about ‘Connection problems’. Alternatively, CC themselves
- offer a hint about it. They say that it is important to quit properly
- from Impression and not just do a <ctrl-break>, otherwise the dongle
- might need to be left for a couple of hours for a capacitor to discharge
- before Impression can be loaded again.
- 4.8
- • Line spacing and font changes − If a line in the middle of a paragraph
- starts with a different font from the lines around it, the line spacing
- may be upset for that one line because of the way Impression does its
- calculations. The way round it is to put the cursor at the start of the
- offending line, cancel the font change at that point and insert a ‘null’
- character (such as Alt-131). This will be invisible but will correct the
- line spacing. BG.
- 4.8
- • Loading text files − If you want to load a text file into Impression,
- there is no need to create a new document first − just drag the Edit
- file onto the Impression icon and it will set up an untitled document
- and load the text into a null frame.
- 4.8
- • Marking a single character − If you are doing DTP in a lower resolu
- tion screen mode, you may be finding it difficult to use the mouse to
- drag-mark a single character e.g. the ‘l’ in ‘will’. One way of doing it
- is to move the cursor between two of the characters, click <select> but
- firmly hold the mouse in place. Then you use the cursor left or right,
- as appropriate, to move the cursor to the other side of the character to
- be marked and finally press <adjust>. George Foot, Oxted.
- 4.8
- My method of doing any of this kind of detailed work is to have two
- windows open on the same document − which is extremely easy to do
- (another advantage over PageMaker!) − one shows the full page and one
- just an enlarged section of the text. Then you can flick backwards and
- forwards between the two views enlarging and contracting the windows or
- simply pushing them to the back when they are not wanted.
- 4.8
- (However, have you noticed that Impression sometimes insists on going
- back to the beginning of the document when you expand and contract the
- window using the size switch icon in the top right hand corner of the
- window? Has anyone worked out why it happens and, more importantly, how
- to stop it?)
- 4.8
- • Special characters − The list in Appendix 5 of the Impression II
- manual gives a printout of all the characters. This is useful, but there
- is some variation from one typeface to another, so it would be useful to
- have an Impression file of it so that you could print it out in your
- particular typeface. I’ll put a file of it on the monthly program disc,
- but if you want to do it yourself, you can run the following program and
- put the text into a multi-column Impression document.
- 4.8
- 10 REM > CHARLISTER
- 4.8
- 20 *SPOOL CHARS
- 4.8
- 30 @%=2
- 4.8
- 40 FOR N% = 32 TO 255
- 4.8
- 50 PRINT N%;CHR$(9);
- 4.8
- “{”“heading”“on }{” ;CHR$(N%); “}”
- 4.8
- 60 NEXT
- 4.8
- 70 *SPOOL
- 4.8
- • Spell-checking − Not really a hint, but I was using the spelling
- checker and it offered me the word “faltness” and told me that
- “flatness” was wrongly spelled. Also, while spell-checking, someone had
- written “Beebugs’ policy”. The spelling checker knows Beebug but can you
- guess what it offered me as an alternative for the accidental plural?
- Yes, that’s right, “Bedbugs”! On the same theme, I spell-checked my
- Factfile and came up with Motley Electronics, Mike Leecher of EMU Ltd,
- ARM3’s from Aloof One and IDLE drives from Ian Copycats. Then I tried
- some of our contributors and found Brain Cowman, Dim Parkland and last,
- but not least, Pall Beggarly.
- 4.8
- • Tickets please! − (The following saga gives, firstly, an unnecessarily
- long method of doing a job but one which illustrates techniques which
- might prove useful in other circumstances. It is followed by the easier,
- smarter method!) I wanted to make some numbered tickets at A6 size so I
- made up an A4 page with four copies of the ticket. I used a two column
- master page so that I could just take a copy of the text on the page and
- paste it 14 times to make my 60 tickets. Near the bottom of each ticket,
- it said, “Ticket number: ” with an appropriate blank space. Then I
- created four guide frames on the master page at about the right place to
- put in the ticket numbers and inserted four new frames on each page. I
- then went through linking all the frames together. To create the text
- for the numbers, I used PipeDream using the “row” command and copying it
- down 60 rows. I then “saved” this in tab format straight into the first
- ticket number frame and, instantly, all the tickets were numbered.
- Brilliant! The only real hassle was lining up the ticket number boxes
- with the words on the ticket. The problem is that although you can have
- both the text and the master page on screen at the same time and at the
- same magnification (which helps), the main page is not updated until the
- master page is closed so I changed the “preferences” to make the master
- page come up at the right magnification.
- 4.8
- (A similar technique of linked frames is used for the running heads on
- the magazine − i.e. the articles’ names at top outside corners of the
- pages. The dummy Archive, before articles are inserted, has a whole
- string of 60 “X”s, one on each page, alternately left and right aligned.
- Then, when an article has been inserted, the running heads are altered
- using selective search and replace to change, for example, “X” into
- “Hints & Tips”. This is easier than using copy and paste because it
- preserves the left and right alignment. But I digress... let me get back
- to the tickets...)
- 4.8
- Then I suddenly realised the easy way of doing it.... Create the ticket
- at full A4 size on the master page using “Ticket number: ” and then
- inserting the page number. (Use <menu> − Misc − Insert − Current page
- number − Numeric.) Then, all you do is to add 59 pages (click on “Insert
- new page” with <adjust>, not <select> so that the menu option stays on
- the screen) and use “Fit lots” on the “Print” dialogue box reducing the
- scale to 50%. If you find that it still says, “Fit lots (1)” at 50% and
- you have to go down to about 48% before it goes to (4), click on
- “Setup...” and select the option to “Ignore page boundary”. If you don’t
- do this but print out at 48%, you will find that the margins are
- unequal. This is a much quicker way of doing it than the previous method
- and also gives the possibility of deciding that you want the tickets
- smaller after all so you just reduce the scale and, perhaps, change to
- sideways printing.
- 4.8
- • Widows & orphans − This is the technical term for where you get a
- paragraph split so that a single line is on one page (or column) and the
- rest is on the previous or next. If the first line is split off from the
- rest, the solution is fairly obvious − use <ctrl-G> at the beginning of
- the paragraph to push the line onto the next column. The odd line at the
- end of a paragraph is less easy. If the text is left justified, you can
- again use <ctrl-G> to push one more line to the next column to join the
- lonely orphan. However, if you subsequently edit the paragraph so that
- the layout of the lines changes, you have to edit out the <ctrl-G>.
- Also, this doesn’t work at all if you are using full justification
- because the <ctrl-G> causes the justification on the last line of the
- column to be lost and it looks like the end of a paragraph without a
- full stop. The only solution I can find is to create a new frame with
- <ctrl-I> and lay it over the last line of the column. This forces that
- line over to the next column without losing the justification.
- 4.8
- SCSI Hints & Tips
- 4.8
- • Removable drive problems − We are beginning to understand more about
- the problems with removable drives. Let me explain... SCSI drives are
- intelligent and they keep their own record of any duff sectors. However,
- this record is not available to the user. If you tell the computer to
- “format” the disc, it deliberately ignores any sectors it already knows
- are duff. If you get a “soft error” i.e. where the data gets corrupted
- so that the CRC check shows up an error, reformatting will clear the
- problem. However, if the disc surface is actually damaged, it may be
- that reformatting clears the problem temporarily but, with time, the
- problem may reappear and you will get the dreaded “Disc error 10 at... ”
- or whatever. The solution to this is to use the *DEFECT command provided
- by RISC-OS. If you get an error, *VERIFY the disc, note the addresses
- which are thrown up as either suspect or actually having a disc error,
- say, 7CEC00, 7CEE00 and 7CF000 and then type in
- 4.8
- *DEFECT SCSI::5 7CEC00
- 4.8
- *DEFECT SCSI::5 7CEE00
- 4.8
- *DEFECT SCSI::5 7CF000
- 4.8
- where SCSI::5 is the drive definition. It is worth recording these
- addresses in case you need to format the disc again in the future. You
- then need to enter the *DEFECT commands again. If *DEFECT finds that you
- are trying to map out a sector that is allocated to a file or directory,
- it will tell you so, in which case, you will have to copy the file or
- directory and delete the one which it says is in the way.
- 4.8
- Obviously, it is better if you can avoid getting hard errors in the
- first place so, just as a reminder, (1) always dismount the drive
- properly before switching off the power and (2) keep your drive cool by
- not packing other hardware around it.
- 4.8
- • Removable drive problems (Part 2) − Surely there can’t be any MORE
- problems with the removable drives − they really won’t be worth selling.
- Yes, there are more problems but, yes, I still think they are worth
- selling. If you try to use the MR45’s or the Atomwide equivalent on an
- Acorn SCSI podule or on a TechnoSCSI (I have not tried any others), you
- will find that occasionally they just hang up − usually when copying a
- sequence of files. It is a timing problem which Acorn say they will look
- into but they are not too optimistic. They say that Syquest, who make
- the drive mechanisms, have interpreted the SCSI standards in a different
- way from other drive manufacturers. The Acorn engineers have tried to
- modify their software to accommodate Syquest’s idiosyncrasies but
- although they have managed to make a version of their software that will
- work when copying lots of files, they find that it does not format the
- cartridges properly! It is not beyond the bounds of possibility to get
- SCSI software to work on the Syquest drives − both Oak and Lingenuity
- have done it successfully but, as yet, there is no satisfactory way of
- running them on Acorn or TechnoSCSI cards.
- 4.8
- I should say to A540 owners, that, although I am using a Syquest
- removable drive on my A540, I am doing so on an Oak podule. I made the
- change (before I realised there was any problem) purely on the basis
- that (1) the Oak software is the easiest to use on the MR45’s because of
- the ease of dismounting and re-mounting discs and (2) it is the fastest
- that I have tried. (I have not yet tried the offerings from HCCS or The
- Serial Port but unless they have specifically tailored their software
- for the Syquest mechanisms, I doubt that they will work.)
- 4.8
- • SCSI land speed record − Oak are claiming an Archimedes drive speed
- record. Their 300M HS drive, on an A440 with a 20MHz ARM3, runs at 1939
- / 1761 / 1043 Kbytes/sec in modes 0, 15 and 21 respectively. Can anyone
- beat that? A
- 4.8
-
- Hints and Tips
- 4.9
- • Beware spaces − There is a problem with spaces at the end of OS
- variables:
- 4.9
- If you include in a !Run file code such as the following:
- 4.9
- Set ThisApp$Dir <Obey$Dir>
- 4.9
- Run <ThisApp$Dir>.!RunImage
- 4.9
- then beware that you don’t include a space at the end of the first line!
- If you do, the space will be included in the definition of ThisApp$Dir
- and the second line will cause a “Bad File Name” error. Hugh Eagle.
- 4.9
- • PC emulator with an ARM3 − The default boot-up process for the ARM3
- performs an RMClear command, killing all RAM resident modules including,
- in particular, the module that drives the ARM3. So, in order, to get the
- PC emulator to take advantage of the ARM3‘s extra speed you need to
- alter the line in !PC.Genboot.!Config immediately after the one that
- reads “Perform RMClear?” from “Y” to “N”! (Thanks to Martin Coulson of
- Atomwide for this advice.) Hugh Eagle
- 4.9
- • Printer tips − You can alter the halftone density by editing the
- PrData file within your printer driver (see Archive 4.6 for an example
- of how to find this). For instance, PrinterLJ has lines such as:
- 4.9
- pxres_halftone:300/8
- 4.9
- pyres_halftone:300/8
- 4.9
- so each halftone dot is actually formed of a matrix of 8x8 dots, giving
- a halftone density of 300/8=37.5 dpi. This gives a very coarse effect
- but can produce 65 different grey levels. Altering the lines to:
- 4.9
- pxres_halftone:300/6
- 4.9
- pyres_halftone:300/6
- 4.9
- gives “only” 37 grey levels and a dot pitch of 50 dpi. Experiment to see
- what suits your printer best.
- 4.9
- A word of caution. I used !Draw to produce some PCB artwork, printed it
- out using !PrinterLJ on a DeskJet Plus and sent it off... Disaster! The
- size was OK across the width but was 1.5% too small along the length of
- the paper, as was discovered when the finished circuit boards came back.
- I’d previously had no trouble using an Epson-compatible printer, so it
- may be something to do with the friction feed on the HP slipping, or
- perhaps a slightly thicker paper would have helped. Anyway, if your hard
- copy must be accurate, then check it! Jonathan Oakley, Cambridge.
- 4.9
- • Printing * command output − Ever since I got my LaserDirect I have
- been laboriously printing the results of *Status, *Dump, etc. by
- directing the output to a file and then printing the file (while
- bemoaning the loss of the <Ctrl-B>, etc. facility à la BBC). However, I
- have just realised that it is easier (and much more in keeping with
- Acorn’s RISC-OS standards, I am sure) to open a Task Window in !Edit,
- enter the * command (which puts its output in the window) and then print
- the contents of the window by “saving” to the printer driver icon. In
- other words, click <menu> on the !Edit icon on the icon bar and use
- Create − New Task window. This presents you with a new window with a *
- ready for a command. Type in the command whose output you want listing,
- say, *STATUS. When the listing has finished, click on the window with
- <menu> and go Edit − Save and drop the text file produced onto your
- printer icon. Easy! (Then close the window, answering ‘Yes’ to ‘Kill and
- close’.) Hugh Eagle
- 4.9
- • Printing via a RISC-OS printer driver from a BASIC program − Have you
- ever wondered why your computer has a button called “Print” that doesn’t
- seem to do anything of the sort?
- 4.9
- At last, applications seem to be appearing that recognise that pressing
- the <Print> key is rather an intuitive way of printing (Impression and
- Poster are two examples). Also, I have discovered that RISC-OS printer
- drivers are not nearly as fearsome as the PRM makes them seem and it is
- actually quite easy to incorporate into your own program’s printing
- routines which are activated by ... wait for it ... the <Print> key.
- Amazing!
- 4.9
- Take the Painting application from the original Arthurian Welcome disc,
- for instance. We still use this in my family because it is so simple,
- but it has always (incredibly) lacked a printing facility. To rectify
- this, proceed as follows:
- 4.9
- Put this line near the beginning of the program (e.g. immediately after
- PROCdesktop (at about line 200):
- 4.9
- PROCPrintSetup(110000)
- 4.9
- Note: 110,000 bytes is big enough to allow the program to run in mode
- 20. 55,000 would be enough for mode 12.
- 4.9
- Put this line in the WimpPoll loop (e.g. immediately after the ENDCASE
- statement at around line 400):
- 4.9
- IF INKEY-33 THEN PROCPrint(162,232,1274,972)
- 4.9
- Note: INKEY-33 is the crucial function that recognises whether the
- <Print> key is being pressed.
- 4.9
- Finally, put these procedures at the end of the program:
- 4.9
- DEF PROCPrintSetup(SpriteAreaSize%)
- 4.9
- DIM SpriteArea% SpriteAreaSize%
- 4.9
- !SpriteArea%=SpriteAreaSize%
- 4.9
- SpriteArea%!8=16
- 4.9
- SYS “OS_SpriteOp”,9+256,SpriteArea%
- 4.9
- ENDPROC
- 4.9
-
- 4.9
- DEF PROCPrint(X1%,Y1%,X2%,Y2%)
- 4.9
- SYS “Hourglass_On”
- 4.9
- PrintHandle%=OPENOUT(“printer:”)
- 4.9
- SYS “PDriver_SelectJob”,PrintHandle% ,0 TO Old%
- 4.9
- ON ERROR LOCAL PROCPrintError
- 4.9
-
- 4.9
- MOVE X1%,Y1%:MOVE X2%,Y2%
- 4.9
- SYS “OS_SpriteOp”,14+256, SpriteArea%,“TempSprite”,1 : REM Get sprite
- 4.9
-
- 4.9
- DIM RectBlock% 15,Transform% 15,PrintPosition% 7
- 4.9
- RectID%=1
- 4.9
- BackCol%=&FFFFFF00:REM set background colour to white
- 4.9
-
- 4.9
- REM X1%, Y1%, etc. are the screen coordinates of the area
- 4.9
- to be printed
- 4.9
- !RectBlock%=X1%:RectBlock%!4=Y1%
- 4.9
- RectBlock%!8=X2%:RectBlock%!12=Y2%
- 4.9
-
- 4.9
- REM No scaling or rotation required
- 4.9
- !Transform%=&10000:Transform%!4=0
- 4.9
- Transform%!8=0:Transform%!12=&10000
- 4.9
-
- 4.9
- REM Put the bottom LH corner 1.5“ REM from the left AND 5” from the
- 4.9
- REM bottom of the page
- 4.9
- !PrintPosition%=1.5*72000
- 4.9
- PrintPosition%!4=5*72000
- 4.9
-
- 4.9
- SYS “PDriver_GiveRectangle”,RectID%, RectBlock%,Transform%,
- PrintPosition%,BackCol%
- 4.9
- SYS “PDriver_DrawPage”,1,RectBlock%, 0,0 TO More%,,RectID%
- 4.9
- WHILE More%
- 4.9
- SYS “OS_SpriteOp”,34+256
- 4.9
- ,SpriteArea%,“TempSprite”
- 4.9
- ,X1%,Y1%,0
- 4.9
- SYS “PDriver_GetRectangle”,, RectBlock% TO More%,,RectID%
- 4.9
- ENDWHILE
- 4.9
- SYS “PDriver_EndJob”,PrintHandle%
- 4.9
- SYS “Hourglass_Smash”
- 4.9
- CLOSE#(PrintHandle%)
- 4.9
- ENDPROC
- 4.9
-
- 4.9
- DEF PROCPrintError
- 4.9
- SYS “PDriver_Abort”,PrintHandle%
- 4.9
- SYS “Hourglass_Smash”
- 4.9
- CLOSE#(PrintHandle%)
- 4.9
- ENDPROC
- 4.9
- Hugh Eagle
- 4.9
- • Running one application from inside another If you’ve ever been
- puzzled by odd behaviour when you try to run one application from inside
- another, the following advice from Mark Neves of Computer Concepts’
- Technical Support Department may help.
- 4.9
- My particular problem arose when I tried to make sure that a printer
- driver was loaded by running !PrinterXX from within application A’s !Run
- file. The result was that application A failed to run and when I quit
- !PrinterXX, an error was reported.
- 4.9
- The answer is that when you run a “sibling task” from another appli
- cation’s run file the sibling “takes over the current environment” until
- it terminates and only then does it return control to the parent task
- (in a manner analogous to a subroutine call).
- 4.9
- The solution is to use the command
- 4.9
- * Desktop <sibling task name>
- 4.9
- rather than *Run. Hugh Eagle
- 4.9
- • “Saving” data from one application to another − (This is another of
- those “obvious to those who know it” hints.) If you want to transfer
- data (e.g. text or a sprite or a drawn object) from one RISC-OS
- application to another you don’t have to save it on a disc from
- application A and then load it into application B; all you have to do is
- drag the icon from application A’s “Save” box (i.e. the window that
- appears when you choose a Save menu option) into application B’s window.
- 4.9
- This works with all well behaved (“RISC-OS compliant”) applications,
- e.g. !Edit, !Draw, Impression, !Paint, !Poster, etc. and generally works
- for either the whole contents of a window or for selected items. Hugh
- Eagle
- 4.9
- • Sprite plotting and colour translation − The ColourTrans section of
- the PRM (pages 1399 to 1424) includes references to a number of SWI’s
- (including, in particular, ColourTrans_SelectTable) which have to be
- called with R1 pointing to the “source palette”. Since, according to PRM
- pages 390−391, a sprite’s palette data starts 44 bytes after the
- beginning of the sprite, it seems clear that, in order to translate a
- sprite’s palette you simply call the ColourTrans SWI with
- SpritePointer%+44 in R1, doesn’t it? Wrong!!!
- 4.9
- In fact, the palette data in a sprite appears to include 8 bytes for
- each colour with the second 4 bytes duplicating the first 4 (does anyone
- know why this is?) whereas ColourTrans expects only 4 bytes per colour.
- 4.9
- So, before you can translate a sprite’s colours, you need to include
- some code on the following lines:−
- 4.9
- PaletteLength%=SpritePointer%!32−44
- 4.9
- IF PaletteLength%=0 THEN
- 4.9
- PalettePointer%=0
- 4.9
- ELSE
- 4.9
- FOR I%=0 TO PaletteLength%-8 STEP 8
- 4.9
- Palette%!(I%/2) = SpritePointer%!(I%+44)
- 4.9
- NEXT
- 4.9
- PalettePointer%=Palette%
- 4.9
- ENDIF
- 4.9
- Note: The palette data, if any, starts 44 bytes after the beginning of
- the sprite. SpritePointer%!32 contains the number of bytes from the
- beginning of the sprite to the start of the actual sprite pixel data. If
- this equals 44, there is no palette.
- 4.9
- The point of setting PalettePointer% to 0 if there is no palette data,
- is that if the sprite has no palette then, in many cases, (especially if
- the sprite is defined in a 256 colour mode) it makes sense to call
- ColourTrans with R1 set to 0 since ColourTrans will then translate the
- default palette for the sprite’s mode. However ...
- 4.9
- • Strange sprite colours − Ever since RISC-OS arrived, I’ve been puzzled
- by the odd colours which have appeared when some sprites have been
- plotted by various applications (including Impression, no less). I think
- that, at last, I’m beginning to understand why. Consider the following
- curious state of affairs:
- 4.9
- Palette details are an optional part of the sprite data format. A lot of
- sprites are created by !Paint. !Paint, by default, creates sprites
- without a palette (presumably on the assumption that, having been
- designed in the Desktop colour scheme, they will be used on the
- Desktop.)
- 4.9
- The PRM (page 1278) recommends that you should use the ColourTrans
- module for best results when plotting or printing a sprite. However,
- although ColourTrans knows how to translate from any given palette and
- from the default palette for any mode, it doesn’t seem to be equipped
- with any means of translating the standard desktop palette of a mode
- other than the current one.
- 4.9
- Therefore, the best that applications can do when faced with a palette-
- less sprite is to tell ColourTrans to assume that the sprite was defined
- in the default palette for its mode. The trouble with this is that it is
- about the worst possible thing that can be done with a sprite defined to
- be used on the Desktop since, for instance, colour 0 which is intended
- to be white, will be translated by ColourTrans, working from the default
- palette, into black! For example, even Impression reverses the colours
- of its standard document icon.
- 4.9
- So, what’s to be done? As far as I can tell:
- 4.9
- The best advice is to make sure that every sprite has a palette. If this
- isn’t possible then, for plotting sprites on the Desktop, use
- Wimp_ReadPixTrans if a sprite doesn’t have a palette (this is the
- routine that the Wimp manager uses for plotting sprites as icons and
- seems to produce quite acceptable results on the whole) and save
- ColourTrans calls for sprites that do have palettes. For example, follow
- the above palette conversion routine with code something like this:
- 4.9
- SYS “ColourTrans_SelectTable”,Mode%, PalettePointer%,-1,-1,ColTable%
- 4.9
- IF PaletteLength%<>0 THEN
- 4.9
- SYS “OS_SpriteOp”,52+512,Sprites% ,SpritePointer%,200,200,
- Mask%*8,Scale%,ColTable%
- 4.9
- ELSE
- 4.9
- IF NumberOfColoursInSprite%<63 THEN SYS “Wimp_ReadPixTrans”, 512,
- Sprites%,SpritePointer% ,,,,,ColTable%
- 4.9
- SYS “OS_SpriteOp”,52+512,Sprites%, SpritePointer%,200,200,
- 4.9
- Mask%*8,Scale%,ColTable%
- 4.9
- ENDIF
- 4.9
- If you’re plotting to a printer, “Wimp_ReadPixTrans” doesn’t help and I
- don’t think there is any straightforward, foolproof method. (It would be
- possible, I think, to create a block of palette data with the RGB values
- for the colours of the Desktop palette in the relevant mode and then
- feed this into ColourTrans, but this would be a rather tedious process.)
- Hugh Eagle
- 4.9
- Impression Hints and Tips
- 4.9
- • Adding fonts by using search & replace − As a mathematics and physics
- teacher, I use a lot of Greek letters and it is rather bothersome to
- have to work through all those menus to reach the effect “Greek” every
- time. Therefore, I use search & replace in a way which (at least in the
- Impression Junior handbook) is not documented:
- 4.9
- I type the text, using the Latin equivalents of the Greek letters (“g-
- Quant” instead of “g-Quant”) then, when I have finished the text, I use
- the following:
- 4.9
- Find: g-Quant
- 4.9
- Replace: g-Quant
- 4.9
- Impression does the rest. (Many thanks to Computer Concepts for the
- information!)
- 4.9
- By the way, if you wish to find out how all the other effects are saved
- in an Impression document, there is an easy way to find out: Just take a
- document with lots of effects and save only the text story (“with
- effects”). If you then drag the icon of the saved text story onto the
- !Edit icon, the text will appear with all the effects in plain language.
- Jochen Konietzko, Koeln, Germany
- 4.9
- (Wouldn’t it be easier to use <ctrl-F6> and edit the “Greek” style, go
- down to the bottom where it says “Key short-cut”, click in the box and
- press, say, <ctrl-shift-F9>, then OK it? Then when you want, say, “g-
- Quant”, you type “<ctrl-shift-F9>g<ctrl-shift-F9>-Quant”.... Oh, I see,
- Impression Junior doesn’t have styles. Oh well, nice try!)
- 4.9
- • Cutting invisible text − If you have more text in a frame than will
- fit, you get the little red arrow which indicates that some of the text
- is invisible. You could obviously create a new frame, click on the over-
- full frame and then click <adjust> on the new frame but there may still
- be too much for that frame. So, is there any way of marking the
- invisible text so that you can cut it or copy it? The answer is that you
- simply use <ctrl-down> to move the cursor to the (invisible) bottom of
- the text the click <adjust> to indicate the upper limit of the area to
- be marked. Ed.
- 4.9
- • Handy hint − If you use the ‘hand’ to move up or down through a long
- document, you are not limited in your movements to the visible page. In
- other words, if you keep moving the mouse up and up (by repeatedly
- lifting the mouse off the table) or down and down, you just keep moving
- through the document in the desired direction. (This is particularly
- useful if you are a trackerball user!) Ed.
- 4.9
- • Importing text files into Impression − In the new version of Impres
- sion which CC have just sent me (version 2.11), I have discovered an
- exciting new concept in the Archimedes world − “the Return Stripper”!!
- 4.9
- In the Extensions directory is a new loader module called “LoadReturn”
- which at last seems to deal satisfactorily with the importing of text
- files. Using this, I no longer have to load the file into !Edit then
- change linefeeds into carriage returns before importing. Nor do I have
- to suffer fixed line lengths in the imported text.
- 4.9
- However, I do have two quibbles (some people are never satisfied!):
- 4.9
- Double carriage returns are reduced to single returns, so spaces between
- paragraphs are eliminated (unless you change the style so that it leaves
- such a space − which I think is good practice. Ed). I feel it would be
- helpful to be able to set a “preference” to decide whether or not double
- returns are preserved.
- 4.9
- Importing a text file now involves a somewhat tiresome sequence of
- message windows whereby I am asked to accept or reject each of the
- available loader modules in turn. I feel it would be helpful to be able
- to use the “preference” facility either to define which loader is used
- for which filetype or, at the very least, to determine the order in
- which the various loader options are offered to me. Hugh Eagle.
- 4.9
- (All I did was to put the LoadReturn extension into the Auto directory
- in the Impression directory and now when I want files stripping, I use
- !Settype (Shareware 19 or 23) to change them to Acorn data file type
- (&FFD) and they are stripped automatically. Ed.)
- 4.9
- • Labels & Tickets − Another way of doing tickets and labels is to
- define a new master page which is the right size for what you want to
- create (pretty radical, eh?). “Fit lots” still works, giving you
- multiple tickets per sheet, but you’re not restricted to 1% size
- increments which can cause you to miss the boundaries on sticky labels,
- especially where there are three or four across the page width.
- (Brilliant! Why didn’t I think of that? Ed. − see below.)
- 4.9
- A similar technique works for cassette inlays. One way is to define a
- single master page 101mm deep and 288mm wide, divided into columns of
- 16, 12, 65, 65, 65 and 65mm; this format will fit two inlays to an A4
- page (assuming zero border width, which will vary between printers), but
- you need to fiddle around with !FontDraw and !Draw (Or use Draw1½ − see
- below. Ed) to get text on the spine of the cassette. Starting with a
- page 288mm deep and 101mm wide gives you the spine text a sensible way
- round, but the four “body” pages are then landscape, which you may not
- want.
- 4.9
- Another way is to split the inlay into two chapters; the spine has a
- 101mm wide, 28mm high master page, and the body pages are 65mm by 101mm,
- or vice versa if you want landscape. Then you need to do a bit of
- cutting and pasting by hand, as Impression won’t print individual pages
- sideways. This is the technique I ended up by using, printing at 141%
- then reducing the pasted-up result from two up on A3 back down by 70% to
- A4, thus enhancing the graphics halftones from 37.5 dpi to 53.6 dpi.
- I’ve included an example ... (Which we have put on the Monthly Program
- Disc. Ed) Jonathan Oakley, Cambridge.
- 4.9
- • Labels & tickets − Ed’s version − I have played a bit with Jonathan’s
- ideas and developed them a little. I tried to create some labels (like
- the ones on our Shareware Discs etc which come as 24 to an A4 page) and
- found that his method worked very well. I created a master page that was
- 70mm x 37.125mm (which is 210mm divided by 3 horizontally and 297mm
- divided by 8 vertically). I set a border 3mm wide on all four sides
- because the Laser Direct HiRes can print up to about 2.5mm of the edge
- of the page and I wanted to have a simple line border around my labels.
- I put all my text on the master page including a page number so that I
- could have a serial number on the labels. I then closed the master page
- and created another 23 pages for my document by using <menu> Edit −
- Insert new page. I clicked 22 times with <adjust> so that the menu
- stayed on screen and once with <select>. I then pressed <print> and
- clicked on “Fit lots” and then “Setup...” and then “Ignore page border”.
- The printout which appeared was almost right but was 1mm too far to the
- right, 1mm too low at the top and the last label was even lower. (Thinks
- hard.... tries various things and then....) The printout was slightly
- too long so I created a slightly shorter master page − 70mm x 37.11mm. I
- tried to see if there was any adjustment on the laser printer but
- couldn’t find any so I went to the (new, shorter) master page, clicked
- on the frame and pressed <ctrl-F10> to alter the frame. In the position
- section, I simply increased X from 5 to 6 and reduced Y from 5 to 4 in
- order to move the text on the page 1 mm right and 1 mm up. Bingo! Every
- border on every label was almost exactly 5mm.
- 4.9
- I also had a quick try with Jonathan’s cassette inlay printing and it is
- really very easy with his first method − I cheated though by using
- Draw1½ (Shareware 34). For the spine, all you do is create a new Draw1½
- document, type in the text you want, change it to whatever font you are
- using, press <menu> − Special − Text to path and then <menu> − Save −
- Selection and drop the Draw file produced into the relevant graphics
- frame in your Impression document. Then use <adjust> to drag the picture
- round until it is near enough at right angles to the rest of the text
- (having decided which way you want it to face) and finally press <ctrl-
- F11> (Alter graphic) and set the Angle to exactly 90° or 270°. (If you
- can remember which way round 90° or 270° puts it, then there’s no need
- to swing it round with <adjust>.) Here is a bit of text that I have just
- inserted. It must have taken me all of 45 seconds to create the frame,
- type in the text, convert it and add it in! (Software to enable me to do
- that on the Mac cost me hundreds of pounds a couple of years ago!)
- 4.9
- • “Running” an Impression document − In Alan Highet’s review of !Menon
- on Shareware 38 (Archive 4.8 page 48) he mentions that it did not work
- well with Impression documents since an attempt to “run” one of these
- caused a second copy of Impression to appear on the icon bar.
- 4.9
- I have observed a similar phenomenon in trying to create a front-end for
- Impression which, amongst other things, opens a template document chosen
- by the user. Simply *Running the document results in the loading of a
- new copy of Impression regardless of whether one is already running.
- 4.9
- So, why is it that double-clicking on an Impression document in a Filer
- window will load it into an existing copy of Impression whereas
- “running” it doesn’t?
- 4.9
- Mark Neves of Computer Concepts’ Technical Support Department has kindly
- explained why this happens and has pointed to a solution.
- 4.9
- The reason is that what happens when you double click on an icon in a
- Filer window is not simply that the document is “run”. First, the Filer
- broadcasts a Message_DataOpen message inviting other applications to
- open the document, and only if this message is returned unacknowledged
- does it instigate a *Run.
- 4.9
- The solution is a fairly simple program on the following lines:
- 4.9
- REM >!RunImage
- 4.9
- TaskName$=“RunImpDoc”
- 4.9
- :
- 4.9
- PROCSetUpWimp
- 4.9
- DocToOpen$=FNReadOSVarVal
- 4.9
- (“Doc$ToOpen”)
- 4.9
- PROCPollLoop
- 4.9
- SYS “Wimp_CloseDown”,Taskid% ,&4B534154
- 4.9
- IF NotAcknowledged% THEN OSCLI(“Run ”+DocToOpen$)
- 4.9
- END
- 4.9
- :
- 4.9
- DEF PROCPollLoop
- 4.9
- LOCAL mask%,quit%
- 4.9
- NotAcknowledged%=FALSE
- 4.9
- PROCSendDataOpenMessage
- 4.9
- mask%=0
- 4.9
- quit%=FALSE
- 4.9
- REPEAT
- 4.9
- SYS “Wimp_Poll”,mask%,block% TO reason%
- 4.9
- CASE reason% OF
- 4.9
- WHEN 17,18 : IF block%!16=4 THEN quit%=TRUE
- 4.9
- REM Another task (presumably
- 4.9
- REM Impression) has acknowledged
- 4.9
- REM our request to load a file.
- 4.9
- WHEN 19 : NotAcknowledged%=TRUE:quit%=TRUE
- 4.9
- REM Our request has not been acknowledged.
- 4.9
- ENDCASE
- 4.9
- UNTIL quit%
- 4.9
- ENDPROC
- 4.9
- :
- 4.9
- DEF PROCSendDataOpenMessage
- 4.9
- !block%=256
- 4.9
- block%!12=0:block%!16=5:block%!20=0
- 4.9
- block%!28=0:block%!32=0:block%!36=0
- 4.9
- block%!40=&2000
- 4.9
- $(block%+44)=DocToOpen$
- 4.9
- ?(block%+44+LEN(DocToOpen$))=0
- 4.9
- SYS “Wimp_SendMessage”,18,block%,0
- 4.9
- ENDPROC
- 4.9
- :
- 4.9
- DEF PROCSetUpWimp
- 4.9
- DIM block% &1000,errblk% 256
- 4.9
- REM Taskid%=FNWimpInit(200,TaskName$)
- 4.9
- SYS “Wimp_Initialise”,200, &4B534154,TaskName$ TO Version%,Taskid%
- 4.9
- ON ERROR PROCError(TaskName$)
- 4.9
- ENDPROC
- 4.9
- :
- 4.9
- DEF FNReadOSVarVal(varname$)
- 4.9
- LOCAL temp1%,temp2%,length%
- 4.9
- DIM temp1% 100,temp2% 100
- 4.9
- $temp2%=varname$
- 4.9
- SYS “OS_ReadVarVal”,temp2%,temp1%, 100,0,3 TO ,,length%
- 4.9
- temp1%?length%=13
- 4.9
- var$=$temp1%
- 4.9
- =var$
- 4.9
- :
- 4.9
- DEF PROCError(TaskName$)
- 4.9
- !errblk%=ERR
- 4.9
- $(errblk%+4)=REPORT$+“ at line ”+ STR$ERL
- 4.9
- errblk%?(4+LEN$(errblk%+4))=0
- 4.9
- SYS “Wimp_ReportError”,errblk%,1, TaskName$
- 4.9
- SYS “Wimp_CloseDown”,Taskid%, &4B534154:END
- 4.9
- ENDPROC
- 4.9
- To use this program, simply set up the OS variable Doc$ToOpen with the
- full pathname of the document and run the program. Hugh Eagle
- 4.9
- • Setting a style in an Impression frame − Question: how do I set up a
- blank frame containing a predetermined style (for instance, to hold the
- address of the person I am writing to, where I would like to use a
- different font from the one in the body of the letter)? If I put the
- cursor in the frame, then apply the style, then move the cursor
- elsewhere (or save and reload the document) before bringing it back to
- the address frame, and then start typing, the text comes up in the
- Basestyle.
- 4.9
- Answer: If after applying the style, I type anything (for instance a
- couple of carriage returns) in the address frame then the applied style
- seems to be remembered and the address frame works as intended.
- 4.9
- Caution: if I delete the entire contents of the frame the applied style
- is deleted too. So, if I want to blank the frame for reuse I have to
- remember to leave a carriage return or two to preserve the style. Hugh
- Eagle.
- 4.9
- • Typesetting − We said we would try to find companies willing to do
- typesetting from Impression output. Here are two that we have found. If
- you discover others, ask them to send us details of their services and
- we will publish them. We are particularly interested in those that will
- take Impression files as such rather than PostScript files on MS-DOS
- discs.
- 4.9
- The Type Station in Cardiff offers a full bureau service for bromide or
- film. You create PostScript files and either send them by post on an MS-
- DOS disc or send them c/o BT using a modem. For details, contact Elgan
- Davis on 0222−229977.
- 4.9
- Focus Print in Aberdeen can do bromides (PMT’s) from your Impression
- files. Phone Alexander Bisset on 0224−592571 ext 211 (or 0224−593956
- evenings). A
- 4.9
-
- Hints and Tips
- 4.10
- • *Count command − In Archive 4.6 p8 the hint about *Count, is only
- partly right. The *Count command only counts data. This means that
- directories indeed don’t contribute, but also that only the amount of
- data in a file is counted. However, all files must be an integer
- multiple of the block-size (1k for D and E format), and for short files
- this makes a huge difference. My 46Mb hard disc has about 8Mb difference
- between space used from *Free and from *Count for these reasons!
- 4.10
- One implication of this is that when you archive a large number of small
- files with !Spark you can save much more disc space than you might
- expect. One thing I would suggest for hard disc users is to copy the
- directory tree using *Copy :4.$ :0 T R, and then archive it, which will
- compress it down to almost nothing. Think of all the time you spend
- setting up the directory structure; this may be more important than
- losing files, most of which you will (should?), after all, have on
- floppies. As an added bonus this also gives you the location of all
- applications, as these are just directories. If (perish the thought) you
- have a disc crash, you can just drag the tree out of the archive and
- onto a new hard disc. Stephen Burke, Liverpool.
- 4.10
- • DataLoad problems? − The PRM says that if a DataLoad message isn’t
- acknowledged, the sending task should delete <Wimp$Scrap> and give an
- error. However, I think this is wrong. You aren’t guaranteed that the
- scrap file used is, in fact, <Wimp$Scrap>. One case where this must
- happen is with an application which can both load and save files of the
- same type at the same time; it must not use <Wimp$Scrap> for both, or it
- might get very confused! However, there might be other reasons. I
- therefore think you should remember the name of the file you saved, and
- delete that − you get told that it wasn’t a secure file, so this should
- be safe. Stephen Burke, Liverpool.
- 4.10
- • Hard Drive problems − BEWARE!!! If you have a fairly old computer − a
- 310 or a 440 or even a vintage 410/1 or if you are working in a dusty
- environment and you are putting in a new hard drive, check/replace the
- fan filter. Why? Well, drive suppliers tell us that on more than one
- occasion they have had a computer where the fan filter was blocked up
- with dust, the customer has installed a new drive and not changed the
- filter and, as a result of the lack of airflow, the drive has suffered a
- fatal head crash. So, you have been warned. (Fan filters should be
- available “from your local Acorn dealer” or they can be bought from
- N.C.S. as part of an “Annual Service Kit” − including a new pair of
- batteries − priced £3.)
- 4.10
- • How long is a line? − While editing an old program which I was
- converting from the BBC Master to run on the Archimedes, I came across
- some features of Basic line lengths which may be of interest. The
- program was originally written for the BBC-B with the longest possible
- lines to save space.
- 4.10
- On Page 16 of the ‘Basic User Guide’ issue 1 dated 1988, it says ‘A line
- of Basic can contain up to 238 characters...’ but on page 386 it says
- that ‘As in a Basic program, the length of a line is limited (by the
- Basic Editor) to 251 characters..’. This implies that the system has two
- different ideas of what the maximum line length should be, instead of
- one. Unfortunately, the one it uses seems to depend on what you are
- doing.
- 4.10
- My module ARMBasicEdit (version 1 21 August 87) allows the insertion of
- many more than 238 characters in a line. I can get up to 369 before
- there is a warning bell, but then neither <Escape> nor <Return> nor SAVE
- work until there are only the 251 characters left. Programs containing
- lines of length between 239 and 251 apparently run without problems.
- However, if you try editing the lines with Basic loaded, just using the
- Copy key, you find that there is a warning bell after 239 characters,
- (excluding the line number), not after 251.
- 4.10
- Programs with lines longer than 239 characters can be converted to ASCII
- using *SPOOL. However, when you attempt to read them back into a Basic
- program using *EXEC, the lines are truncated to 239, so that the program
- no longer runs. There is a warning bell but the *EXEC process does not
- stop, so not allowing me to find which lines are at fault. I find this
- very frustrating. The file Btest, on the monthly disc, is an example of
- such a program. The file ‘CHECK240’ is a small program which reads a
- file made using *SPOOL which cannot be successfully read back using
- *EXEC. It lists the line numbers which are too long, allowing me to edit
- them with the Basic Editor.
- 4.10
- CHAIN“Btest” to see that it runs. Then try
- 4.10
- *SPOOL TEMP
- 4.10
- LIST
- 4.10
- *SPOOL
- 4.10
- *EXEC TEMP
- 4.10
- CHAIN “CHECK240”
- 4.10
- and reply “TEMP” at the prompt. Kate Crennell, Didcot.
- 4.10
- • Printer drivers − Further to recent tips about altering the PrData
- file within the printer driver, you can also alter the title of your
- preferred driver and make it the default driver on loading. For example,
- the amendments to !PrinterDM in Archive 4.8 could be made to read “Star
- LC24-10” by altering the line before the line “printer number:2”. The
- default loading is achieved by amending the line “printer:01” to
- “printer:02”. This line is found towards the end of the data file
- immediately before the line “location:1”. Note that the printer number
- must be padded out with a zero (0). Pressing <select> after loading the
- driver will confirm if your amendments have been correctly made. Ted
- Lacey, Southampton.
- 4.10
- • Printing A5 on an A4 printer − If you ask the manufacturers, they say
- it is not possible to put A5 paper through either the Qume (300 d.p.i.)
- or the Canon (600 d.p.i.) Laser Directs − or the LBP4’s for that matter
- − but it is possible. All you need is a pile of A5 sheets of scrap paper
- sellotaped up into a solid block about ½“ thick (or ¾” thick for the
- Canons). You put them at the back of the A4 paper tray and put the A5
- paper, sideways, of course, at the front. The paper usually goes through
- OK but does occasionally stick. All you have to be careful of, presum
- ably, is that you don’t print on the lower half of the (A4) paper that
- is not actually there. Having said that, I have been using A5 paper on
- Qume’s, Canons and Mac Laserwriters for years and have occasionally left
- the “A5” tray in when printing A4 without any obvious damage to the
- printers.
- 4.10
- We can now get hold of spare paper trays for Qume (£66) and Canon LBP4
- (£57) and Canon LBP8 (£54)
- 4.10
- (A possible alternative to the paper is a block of wood the same size
- and thickness but I haven’t actually tried it.)
- 4.10
- • Psychedelic sound-to-light − Whilst playing a Tracker module, it is
- possible to obtain some interesting effects on your monitor by typing
- the following Basic command:
- 4.10
- SYS “OS_UpdateMEMC”,768,1792
- 4.10
- The screen can be returned to normal with either a MODE command or with:
- 4.10
- SYS “OS_UpdateMEMC”,1536,1792
- 4.10
- Rob Swain, Kent
- 4.10
- • Render Bender on SCSI hard disc drives revisited − In Archive 3.11 p6,
- Neil Berry explains how to use Render Bender on SCSI hard disc drives
- but leaves us with the problem of how to use *KILLADFS. This can be
- achieved by changing all references made to SWI ADFS_Drives (&40242) to
- SWI SCSI_Drives (&403C6). i.e.
- 4.10
- In the ‘Render’ Basic listing: change the SWI &40242 to &403C6 in line
- 15810
- 4.10
- In ‘Aniroute’ Basic listing: change the SWI &40242 to &403C6 in line
- 6670
- 4.10
- Atle Mjelde Bårdholt, Norway
- 4.10
- • Running one application inside another − The comment in Archive 4.9
- page 6 seems to need some amplification. As explained on page 11 of the
- May/June 1991 issue of “The Archimedean” from Computer Concepts, if you
- want to run one application from inside the !Run file of another, you
- should first enter the command
- 4.10
- *Desktop Run <sibling task name>
- 4.10
- and then repeat the *Wimpslot command from earlier in the !Run file to
- ensure that there is enough memory available for the main application
- before you run it.
- 4.10
- Thus, for example, to make Impression automatically load a printer
- driver whenever it is run you should edit the !Impress.!Run file by
- inserting two extra lines immediately before the last so that the last
- three lines read:
- 4.10
- Desktop Run [...path...].!PrinterXX
- 4.10
- Wimpslot −min xxxK −max xxxK
- 4.10
- Run “<Impression$Dir>.!RunImage” %*0
- 4.10
- The xxxK in the Wimpslot command should be exactly the same as used
- earlier in the !Run file − the precise amount of memory needed will vary
- from one version of Impression to another. Hugh Eagle, Horsham.
- 4.10
- • Sound improvements − A much improved sound, which is also more
- controllable, can be obtained using the standard colour monitor supplied
- with the Archimedes. A 3.5mm jack (Archimedes) to phono (monitor) cable
- is required, and the speaker on the Archimedes should be turned off
- using *SPEAKER OFF. Sean Kelly, London
- 4.10
- • Sound voice changes − Among the (many) things that annoy me are those
- professional programmers who alter your Sound Voice for their games
- which otherwise claim to be “RISC-OS Compatible”. They return you to the
- desktop with their Sound Modules set up as ChannelVoice 1. Not everyone
- likes the WaveSynth-Beep as default voice, and as for some of the sound
- modules or digitised Voice Modules which are then sounded when an error
- occurs, YUK!
- 4.10
- It is quite a simple matter to find out what ChannelVoice the user has
- set up and the program could very easily, before exiting to the desktop,
- restore it using the following code which is available for all program
- mers to use, professional or amateur (please!).
- 4.10
- REM Find the User’s ChannelVoice 1
- 4.10
- SYS “Sound_AttachVoice”,1,0 to ,user_voice%
- 4.10
-
- 4.10
- REM Because ChannelVoice 1 now equal to 0, reset
- 4.10
- SYS “Sound_AttachVoice”,1,user_voice%
- 4.10
- REM Rest of program, Wimp Interface, whatever
- 4.10
- *ChannelVoice 1 Totally Fantastic Voice
- 4.10
-
- 4.10
- REM Program at end, restore user voice
- 4.10
- SYS“Sound_AttachVoice”,1,user_voice%
- 4.10
- David Shepherdson
- 4.10
- • Toolkit Plus update − Clares’ Toolkit Plus usually produces a ‘Bad
- disc address’ error when you try to edit E format floppy discs. This can
- be rectified by performing the following:
- 4.10
- 1 RMLoad the Toolkit Plus module.
- 4.10
- 2 Type: *Modules <return> and take note of the ‘position’ address of the
- Toolkit Plus module.
- 4.10
- 3 Use *WFIND &EF060240 <return> and ignore the first occurrence (i.e.
- press <ctrl-tab> to go on to the next occurrence).
- 4.10
- 4 Locate the instruction seventeen lines down which reads BCC xxxxx.
- 4.10
- 5 Select ‘word mode’ and zero this instruction.
- 4.10
- You should now be able to edit E format discs.
- 4.10
- S Edwards, Wordsley
- 4.10
- • Toolkit Plus with SCSI − Clares’ Toolkit Plus provides a disc sector
- editor, which refused to work on my SCSI hard disc. A modified Toolkit
- Plus may be produced by using !Edit on the Toolkit Plus module to
- replace all occurrences of ‘ADFS’ with ‘SCSI’ before saving the module
- with a new name e.g. SCSITools.
- 4.10
- A drawback is that the modified version will not cope with ADFS
- floppies. Changing the module name (e.g. from ‘Toolkit+’ to ‘SCSITools’)
- using !Edit allows the modified and original modules to be present at
- the same time, and changing the disc edit command names allows both ADFS
- and SCSI discs to be edited − for instance, !Edit could be used to
- replace ‘AEDIT’ in Toolkit+ with ‘WEDIT’ in SCSITools.
- 4.10
- Sean Kelly, London
- 4.10
- Impression Hints and Tips
- 4.10
- • Abbreviations − I use abbreviations quite a lot such as “imp” for
- Impression and just “r” for Archimedes but I often want to say, for
- example “ ...using DrawPlus (Careware 13)...” and although “ca” and “Ca”
- are both set up to expand to “Careware”, using “(ca” doesn’t work. There
- is no easy way round it as far as I know − you just have to put “(ca”
- into the abbreviations dictionary to expand to “(Careware”.
- 4.10
- • Bullets − We’ve mentioned that <ctrl-shift-H> produces a bullet but
- since <backspace> (immediately below <F12> and above <\>) produces the
- same ASCII code as <ctrl-H>, you will find that <shift-backspace>
- produces a bullet. Touch typists may well find it somewhat more natural
- than <ctrl-shift-H>.
- 4.10
- • Creating tables − The release notes issued with Impression II describe
- the new features of version 2.12 but they do less than justice to one of
- those features, namely the capacity to create tables. It is possible to
- vary the width of individual columns and individual rows in a table as
- well as the thickness of the vertical and horizontal lines which form
- the table.
- 4.10
- In addition, the many editing facilities of Impression can be used to
- modify text which has been entered into the table so that the style and
- size of the characters in any “cell” of the table can be varied as
- desired.
- 4.10
- Moreover, in the manner usual with Impression II, another frame can be
- superimposed on any selected part of the table with the effect that
- lines of the table can be covered and will “disappear” permitting text
- of any size and nature to be introduced and adjusted to appear to be a
- part of the structure of the table.
- 4.10
- In addition to text, any of the superimposed frames can be made graphics
- frames permitting illustrations to be introduced. You can use left hand
- tabulation in the some columns, right hand tabulation in others and
- decimal point tabulation in others.
- 4.10
- Practical matters: First construct the empty table. Then determine which
- cells will be visible in the completed table and enter text into those
- cells, Finally, superimpose other frames as required. Proceeding in this
- order prevents interference with tabulation.
- 4.10
- The usual procedure will be to construct a table of this kind within a
- frame of its own so that it can be moved as a whole to any desired
- position within the document of which it will form a part. Therefore, on
- completion of the table, the various frames of which it is composed
- should be Grouped so that the table occupies a single frame. George
- Foot, Oxted. A
- 4.10
-
- 4.10
-
- 4.10
-
- 4.10
- Oak
- 4.10
- From 4.9 page 12
- 4.10
-
- 4.10
- Lindis International
- 4.10
- From 4.8 page 16
- 4.10
-
- 4.10
- Computer Concepts
- 4.10
- New artwork
- 4.10
- Coming direct to you, hopefully!
- 4.10
- If not, use old one.
- 4.10
-
- 4.10
- Computer Concepts
- 4.10
- New artwork
- 4.10
- Coming direct to you, hopefully!
- 4.10
- If not, use old one.
- 4.10
-
- 4.10
- Graphics Galore on the Cheap!
- 4.10
- Tord Eriksson
- 4.10
- Reading with amazement about the latest version of Ventura Publisher Mac
- that costs a cool £695 (exclusive VAT!) and so-called ‘budget’ DTP
- programs for IBMs weighing in at £70 to £160, I wonder if we Archimedes
- users really know how fortunate we are when it comes to good, cheap
- software.
- 4.10
- The “budget” DTP programs for IBMs can’t even word-process − you have to
- use a separate editor, just as you have to do if you do some DTP with
- !Draw....
- 4.10
- Of course, the latest version of Ventura Publisher Mac can print fonts
- in 23½ size instead of just 23 or 24 point size − a revolution no doubt
- but one that almost all DTP and word-processors for our Archimedes
- machines manage easily!
- 4.10
- Archimedes − no master of colours!
- 4.10
- There is a difference between modern IBMs and Mac II’s that puts all
- Acorn computers at a disadvantage, even if it was once hailed as an
- advance over said computers: Colours!
- 4.10
- In terms of colour, both Mac II computers and IBMs with VGA are better
- than Archimedes and the sky is the limit as there are hundreds of
- graphics cards that can be bought that improve things further − 24-bit
- colours are available.
- 4.10
- RISC-OS has an upper limit of 8 bits per pixel, 256 colours − 24 bits
- per pixel gives 16,777,216 different colours, quite a lot more!.
- 4.10
- For the Archimedes range, the limitations are built-in, through RISC-OS
- and the fixed hardware. (There are some improvements possible with
- hardware add-ons, but nothing major).
- 4.10
- Serious DTP is black & white!
- 4.10
- Fortunately, colour printers are very rare in everyday printing, mainly
- due to the fact that such printers are very costly and/or requires
- skilled staff to attend to them.
- 4.10
- So, for practical purposes, DTP will continue to be a mainly black &
- white affair, maybe with some colour thrown in for good measure on
- covers etc.
- 4.10
- The woes of illustrating....
- 4.10
- Being a former technical illustrator, I am painfully aware of the amount
- of work needed to set text in a circular fashion as on a coin or an
- official seal or make the logo on a fluttering flag look like the real
- thing. Hours and hours of work, or in the case of the flag, take a photo
- of the real thing and trace that with tracing paper....
- 4.10
- If the logo is new, you can’t print it first on a flag, so you try to
- make do with crinkling a piece of paper upon which you put your text or
- logo and take a photo of that....
- 4.10
- All this is now of the past, as long as your logo or text can be
- transformed into a !Draw file.
- 4.10
- First − !FontFX
- 4.10
- Let us try an example: There used to be an oil company around this part
- of the world called Caltex. Let us say we are going to do a drawing with
- a flag fluttering with that name on it.
- 4.10
- First we have the text, set in Pembroke:
- 4.10
- To make it more interesting let’s add a shadow, with the shadow in the
- north-east, and make the text itself a black outline filled with a light
- grey and behind it, the dark grey shadow:
- 4.10
-
- 4.10
-
- 4.10
-
- 4.10
- Both these operations are very easy to do with !FontFX as you just click
- on the buttons needed, no previous know-how needed!
- 4.10
- To make this flutter we have to use a couple of other utilities:
- !DrawPlus (or !Draw) and DrawBender.
- 4.10
- Warped universe
- 4.10
- A normal picture is plotted in our brain according to the angle we watch
- the picture from: If we fly above a square field the corners are right
- angle corners (a so-called bird’s-eye view) and if we stand just outside
- the field the angles get very odd indeed − their sum is still 360,
- though!
- 4.10
- If a square is wrapped around a cylinder things get much more compli
- cated, especially when seen at an angle − an illustrator’s nightmare!
- Not even all CAD programs seems to be able to solve it correctly....
- 4.10
- Secondly − make a mould!
- 4.10
- DrawBender manipulates !Draw files by plotting them inside each other:
- Any text that is going to be manipulated has to be in !Draw format. The
- coordinate system “inside” a square is still square but inside a circle
- it takes on the characteristics of a text printed on a balloon like
- this:
- 4.10
-
- 4.10
-
- 4.10
-
- 4.10
-
- 4.10
- The first (the circle) is called the mould and the second (the square
- inside a frame) is called the object.
- 4.10
- Due to the way DrawBender works, a real circle couldn’t be used − it had
- to be substituted it with a 32-sided polygon and it had to be flipped
- over because paths have to be clockwise to work as moulds in DrawBender
- whereas !Draw and !DrawPlus draw counter-clockwise − it’s all very well
- explained in the DrawBender manual!
- 4.10
- Wonderful results!
- 4.10
- Taking the text, we put it on rectangular background, to make the
- outline of the flag as the outline of the mould doesn’t show up on the
- finished result:
- 4.10
- This is now our object! A “flapping flag” is our mould:
- 4.10
- Conclusion
- 4.10
- As the end result shows the effect is quite stunning. This amount of
- manipulation is available to IBM users of course − I could recommend
- Express Publisher (£159.95) as the “low-cost” alternative!
- 4.10
- For Archimedes users the cost is just £21, including two manuals and
- lots of sample files (available from Ian Copestake Software). A
- 4.10
-
- Hints and Tips
- 4.11
- • Running applications − Carrying on from Hugh Eagle’s tip about running
- one application from inside another, on a A310, if you only have
- floppies and have, say, a DTP !Impression disc with !PrinterDM ,
- !FontDraw and !DrawPlus all at the same level, you can tailor the !run
- file of, say, !Impression to load other applications at the same
- directory level, dependant on memory, by using the command
- 4.11
- *desktop <obey$dir>.^.!second_
- 4.11
- application_name
- 4.11
- the <obey$dir> sets the filing system into the first selected appli
- cation (!Impression.) and the .^. takes it back up to the level you were
- at first! The next application then loads on the desktop ready for use.
- Repeat the line with “!third_ application_name” and so on. Ned Abell
- 4.11
- • Colour separations − Last month, there was a question from John
- Oversby about a colour separation program for !Draw or sprite files. One
- solution is to use DrawPlus (Careware 13), actually drawing different
- colours on different “layers”. Another possible solution revolves around
- the Impression Business Supplement which provides colour separation for
- PostScript files. However, the ideal solution is a simple “filter”
- program which takes in a !Draw file and selects all objects of a
- particular colour and puts them into a new !Draw file. Does anyone know
- of such a program? I would be interested in using this for producing
- double-sided printed circuit boards using !Draw. It is easy to write a
- Basic program to do this starting from the !Draw format as specified in
- the PRM − I could even do this myself − but making it RISC-OS-ified is
- another matter. Brian Cowan
- 4.11
- Impression H & T
- 4.11
- • Business Supplement − Like many of you I was excited about the release
- of more software for serious users of Impression II. The addition of the
- mail-merge facility is particularly useful. However, I have noticed that
- it suffers from a problem that early versions of Impression had. Namely,
- using the * print facility causes the print to crash after the first
- document with “Invalid number of output bits” in multiscan mode. The
- problem is resolved by switching to mode 15. Also, beware of forgetting
- to load your RISC-OS printer driver before requesting a print from
- !Importer. This is because it won’t warn you that you will receive a
- draft copy − and worse, you have to close everything down and start
- again.
- 4.11
- Another word of warning to those of you planning to buy the supplement
- thinking that the WordStar loader will solve all your translation
- problems − it doesn’t (not on my version, anyway)! If I had thought
- about it, the result one gets is obvious. All the ASCII spaces that mess
- up justification are stripped − but this is at the cost of losing a
- space at the end of a line. Consequently, numerous words are joined
- together. If you are prepared to use the spellchecker to separate the
- words again the utility is fine and it does stop those messy spaces
- appearing whenever you make an alteration to the text. However, it’s
- still hard work! John Brocks
- 4.11
- • Font usage − Is there a product or would someone like to write an
- application which takes an Impression document and tells you what
- fonts are required? The reason for this is that some PD software
- includes documentation prepared in Impression format. This is a great
- idea but sometimes strange fonts are used. If you are using Adrian
- Look’s !FontDir (Shareware 36) then you need to know which fonts are
- needed before Impression is booted up. Brian Cowan
- 4.11
- That should be easy enough. If you want to do it manually, you can save
- the text of an Impression document with styles and look at it in Edit.
- You can search for “font ” and look through all the references to
- particular fonts as they occur in the style definitions and as effects
- within the text. Mind you, that will give you the fonts that appear
- within the style definitions regardless of whether those styles have
- actually been used in the document. Anyone want to have a go at writing
- such an application?
- 4.11
- Is anyone interested in / able to convert between the Impression
- Document Description File format and TeX? I think it should be possible
- since both contain the same sort of information. This would be useful
- for scientific applications where many journals accept material on disc
- or by wire in TeX format. Brian Cowan
- 4.11
- • Labels and tickets − When I was printing video cassette labels onto a
- roll of adhesive labels they were printing too far to the right. I
- failed to understand that !Impression is smart and says, “right, you are
- printing a document 165mm wide. I will print it 82.5mm to the right and
- left of the centre line of the printer”. I have a mark on the case of my
- Citizen 120D printer to align the left hand side of A4 paper, when
- putting in individual sheets but I can’t centre different rolls of
- labels accurately without putting several marks on the case which would
- be confusing so I got round the problem by designing new master pages
- that are always A4 width (210 mm) and creating a frame on that page that
- is the right width for the labels and off centred to the left. I
- continue to put the label roll edge to the mark.
- 4.11
- I then had to change the !Printer DM page size to one 102mm by 210mm
- wide which gives me the the right “greying” on the screen as I have
- “Preferences”, “Show page borders”, switched on. This prints two perfect
- sets of labels but I still get unwanted form feeds at the end of the
- page! (Example supplied on monthly program disc.) Ned Abell
- 4.11
- • Retaining styles − Hugh Eagles’s question about setting a style in a
- blank Impression frame (Archive 4.9 p11) can be answered in terms of
- ‘Place holding’ in the same way as my hint on re-aligning lines starting
- with a different font (Archive 4.8 page 11). Just set the style and type
- a ‘null’ character in the frame (i.e. one which is not defined in the
- font you are using) by using Alt and the keypad numbers. (EFF fonts are
- rapidly filling up, making null characters harder to find, but try 136
- or 139.) Bruce Goatly
- 4.11
- • Un-deleting − As you probably know, you can highlight a passage, type
- over it and thereby replace it. Well, if you have second thoughts
- immediately afterwards, you can restore the original by highlighting the
- replacement passage and typing <ctrl-V>. This deletes the replacement
- altogether rather than cutting it to the clipboard; the clipboard still
- contains the original version. Bruce Goatly A
- 4.11
-
- 4.11
- Help!!!!
- 4.11
- • Mac Scanner − Does anybody know of software to use a Mac AppleScanner
- with a SCSI interface on an Archimedes? Brian Cowan
- 4.11
- • Podule expansion − Does anyone know of an expansion box which allows
- more than 4 podules to be attached to an Archimedes computer at any one
- time? A G Duckett, Telford. A
- 4.11
-
- 4.11
-
-
-
- ProTips
- 4.11
- Peter Jennings
- 4.11
- This is a column of hints and tips for users of Protext 5. It is not
- intended as a regular feature to rival PipeLine as there are probably
- not yet enough users of the Archimedes version of Protext to support it.
- Arnor have promised to keep me informed of developments to Protext,
- particularly the eagerly awaited RISC-OS version, and I will pass the
- details on in future issues of Archive, along with any hints or tips
- that pioneering users of this exciting new word processor may care to
- send by way of Paul Beverley.
- 4.11
- In the meantime, here are a few hints of my own plus advice on an
- irritating bug that has emerged from the software since I completed the
- review in last month’s Archive.
- 4.11
- First the bug, which has suddenly appeared after lying dormant during
- three months’ constant use of Protext. It shows itself during attempts
- to save a file, either manually or automatically, with two messages, one
- saying that the file “PROTEXT!X” or “PROTEXT!T” cannot be found and the
- other: “Error creating file”. More alarmingly, the text sometimes
- disappears from the screen. Any further attempt to save brings a “File
- open” message. My description of this as “irritating” may seem rather
- inadequate but, in fact, it is not disastrous and can be dealt with
- quite easily. When the message about PROTEXT!X appears just type “close”
- at the command line, followed by “s” (for save). Your original file name
- will then be offered and pressing <return> will duly save it.
- 4.11
- Arnor have not given me any fix for this fault but have just said,
- rather uncertainly: “We think we may have solved the problem in the next
- version of Protext.” Let us hope they have.
- 4.11
- Omissions
- 4.11
- Two strange omissions from Protext, so far, are a function key strip and
- an icon. If you dislike the boring default applications icon, or the
- blank squares representing files, you can always design your own icons,
- using !Paint. First create a directory for them, called !Sprites, inside
- the main !Protext directory. Then design an application icon named
- !protext and a files icon called file_cdf, with additional small
- versions if wanted. Finally, add an initial line to the !Boot file:
- “IconSprites <Obey$Dir>.!Sprites”. If you are not sure how to create
- icons there are instructions in the chapter on “Paint” in the User Guide
- or you can find a set of ready-made sprites in a !Sprites directory on
- this month’s program disc. You can just copy !Sprites into the !Protext
- directory but do not forget to add the IconSprites line to the !Boot
- file. The ready-mades have a simple “P5” design, with a border round the
- files sprite, but are colourful enough to be readily identified in a
- desktop directory.
- 4.11
- A do-it-yourself function key strip is also easily made, either using a
- program which provides a template or by starting from scratch with
- Protext’s excellent line drawing facility. One made this way is also on
- this month’s disc. It has to be printed in two sections, one below the
- other, as Protext can not print down the paper in landscape form. Anyone
- who has a wide-carriage printer can copy the second section beside the
- first by using the Protext “box” marking facility.
- 4.11
- Line drawing
- 4.11
- When making a grid by line drawing, the natural way is to begin by
- drawing either the horizontal lines or the outside box shape and then
- adding the verticals afterwards. If you do it this way, however, you may
- find the vertical lines going slightly beyond the outside boundaries. To
- correct this, draw the uprights with the up or down arrow key, as
- normal, but use one of the horizontal, left or right, arrow keys for the
- final stroke before reaching the horizontal boundary. The line will then
- turn the corner to make a neat join instead of an intersection. Corners
- are drawn in the same way.
- 4.11
- Although Protext comes with 48 printer drivers, there isn’t one for the
- very popular Panasonic KX-P1081 printer, which I use. The FX80 printer
- driver is suitable for it but will not print line drawings. So the
- function key strip needs to have the IBM9 printer driver loaded and one
- of the printer’s tiny DIP switches changed. These can be found below and
- immediately to the right of the printer head when it is in its “home”
- position on the extreme left. Lift up the thin strip of clear plastic
- covering them and use a small screwdriver or similar implement to push
- switch number one, on the extreme left, down (for off). The other
- switches can probably be left as set but if you still have a problem try
- putting either switch six or seven up (for on).
- 4.11
- Hopefully, Arnor will produce a key strip and their own official icons
- when the RISC-OS version of Protext finally appears.
- 4.11
- Obvious when you know
- 4.11
- Finally, a few brief tips of the “it’s obvious when you know” variety.
- You can find your version number of Protext by pressing <escape> and
- reading the bar above the command line. This also shows you the current
- directory and the selected printer driver.
- 4.11
- The “Swap” line at the top of the colour configuration menu puzzled me
- for a time as it does not seem to be explained anywhere. I eventually
- discovered that selecting it and pressing <return> shows the colours
- used for alternate documents when more than one is loaded.
- 4.11
- It is a good idea to lock the files of templates, such as letter
- headings, to prevent them being overwritten if a document you are
- working on is automatically saved with the template’s name. If, for any
- reason, you cannot lock the template, load it with the command “m” for
- merge instead of “l” for load. The bar at the top of the screen will
- show “No file” and you will be asked for a name before the document is
- saved. A
- 4.11
-
- Hints and Tips
- 4.12
- • Basic line lengths revisited (Archive 4.10 p7) − The Basic line input
- buffer is 238 characters and so this is the most you can type in from
- the Basic prompt. Once entered, this line is tokenised before being
- stored as part of a program. Most of the keywords are reduced to only
- one byte, so the line ends up taking up much less room in a program. The
- maximum length for a line in a program is 255 bytes, but four of these
- bytes have special purposes (one is a line terminator, one the line
- length and two the line number). This leaves 251 bytes for the rest of
- the line. So what’s the point in allowing bigger lines in the program if
- you can’t type them in? Well, you can by being devious. Try typing the
- following at the Basic prompt:
- 4.12
- 10E.:E.:E.: etc
- 4.12
- until you hit the line limit and then press Return. Listing your program
- now should reveal:
- 4.12
- 10ENDPROC:ENDPROC:ENDPROC: etc
- 4.12
- up to a length of about 790 characters! This line is perfectly valid and
- would run OK (although I can’t think of a program where 79 ENDPROCs in a
- row would be useful!) but is much too long to edit at the Basic prompt
- or in the Basic Editor. It wouldn’t be sensible for the Basic Editor to
- limit you to 251 characters since, once tokenised, your line would be
- much shorter, so it allows you to type up to 369 characters hoping that
- tokenising will bring it back to 251. It objects if you try to type in
- more than 369 characters; it also objects if you type a shorter line
- which would be longer than 251 characters once tokenised (try REM
- followed by 300 letters). As for solving the problem, if you have a copy
- of Twin, you could try loading your Basic program into it. Twin has no
- line length limit and will cope with anything. Returning to Basic will
- always work provided the resulting tokenised lines would be no longer
- than 251 characters. Lorcan Mongey
- 4.12
- • Citizen printer spare parts − You may be interested to know that you
- can get spare parts for Citizen printers from XMA Ltd, Ruddington Lane,
- Wilford, Nottingham, NG11 7EP. (0602 −818222) Rob Brown, Tadworth,
- Surrey.
- 4.12
- • Fatal error type = 5 − !Edit will report this error if you have too
- many outline fonts in your !Fonts folder. This will prevent you from
- editing any documents within !Edit. The following Basic program will
- solve this problem by hiding the !Fonts folder before running !Edit and
- then restoring it once !Edit has been run.
- 4.12
- 1. Rename the ‘!RunImage’ file inside the ‘!Edit’ folder as ‘EditImage’.
- 4.12
- 2. Type the following program in and then save it as ‘!RunImage’ in the
- ‘!Edit’ folder.
- 4.12
- REM ><Edit$Dir>.!RunImage
- 4.12
- SYS “Wimp_Initialise”,200,&4B534154, “EditStart” TO ,taskid%
- 4.12
- *Set temp <Font$Prefix>
- 4.12
- *UnSet Font$Prefix
- 4.12
- *WimpSlot -min 160k -max 160k
- 4.12
- *WimpSlot -min 160k
- 4.12
- SYS “Wimp_StartTask”,“Run <Edit$Dir> .EditImage ”+FNenv_string
- 4.12
- *Set Font$Prefix <temp>
- 4.12
- *Unset temp
- 4.12
- SYS “Wimp_CloseDown”,,taskid% ,&4B534154
- 4.12
- END
- 4.12
-
- 4.12
- DEFFNenv_string
- 4.12
- LOCAL env$,x%
- 4.12
- SYS “OS_GetEnv” TO env$
- 4.12
- IF LEN(env$)<6 THEN =“”
- 4.12
- WHILE INSTR(env$,“ ”,x%)>0
- 4.12
- x%=INSTR(env$,“ ”,x%)+1
- 4.12
- ENDWHILE
- 4.12
- =RIGHT$(env$,LEN(env$)-x%+1)
- 4.12
- • Locating the I/O podule (a SWI number change) − Those writing code
- for the I/O podule for use on different machines should note that Acorn
- made a SWI number change between version 1.04 and 1.06 of the software
- (use *Help Modules to find what version you have). Earlier issues of the
- podule use &4043F for SWI “I/O _Podule_Hardware” whereas the later
- versions use &40500. ARM code assembled on a machine with one version of
- the software will not work on another machine with a different version
- without changing this SWI number. Richard House, Surrey.
- 4.12
- • PC screen fonts − If you are not overly fond of the chunky IBM
- character set in the PC emulator, the following few lines of Basic will
- modify the emulator ROM file with the BBC font of your choice.
- 4.12
- REM >PCFONT
- 4.12
- REM Merge BBC FONT file into !PC ROM file
- 4.12
- REM N.B. *** COPY ORIGINAL ROM FILE BEFORE RUNNING THIS ***
- 4.12
- :
- 4.12
- DIM rom% &2000 : offset%=&166E
- 4.12
- R$=“:4.$.!PC.ROM”
- 4.12
- OSCLI(“Load ”+R$+“ ”+STR$~rom%)
- 4.12
- A%=OPENIN(R$) : r1%=EXT#A% : CLOSE#A%
- 4.12
- :
- 4.12
- F%=OPENIN(“4:.BBCFONTS.NEWFONT”) : REM file of type &FF7
- 4.12
- REPEAT
- 4.12
- A%=BGET#F%
- 4.12
- IF A%<>23 THEN PRINT “This is not a BBC font file!” : END
- 4.12
- C%=BGET%F%
- 4.12
- FOR I%=0 TO 7
- 4.12
- rom%?(offset%+((C%+128) MOD 256) *8+ I%)=BGET#F%
- 4.12
- NEXT I%
- 4.12
- UNTIL EOF#F%
- 4.12
- CLOSE#F%
- 4.12
- :
- 4.12
- OSCLI(“Save ”+R$+“ ”STR$~rom%+ “ + ”+STR$~r1%)
- 4.12
- END
- 4.12
- This program has been used successfully on the ROM files supplied with
- version 1.33 and the latest 1.60 (large and small) − each version stores
- its VDU 23 character definitions from offset &166E onwards. Pete Bready,
- Glasgow.
- 4.12
- • Impression Junior styles? − In the June 1991 edition of Archive, it
- was pointed out that Impression Junior does not have styles. Although it
- does not have styles, it does have rulers. These are intended to define
- margins and tab-stops, but they can be used for other things.
- 4.12
- If you save a text story with effects, you will see the definition of a
- ruler, which looks like:
- 4.12
-
- 4.12
- There will also be the definition of the BaseStyle, which contains a
- number of additional commands. By copying some of these to the ruler
- definition, you can create the equivalent of a style. As an example, a
- ‘style’ that changes the font of the text subject to the ruler to greek,
- could be, for example:
- 4.12
-
- 4.12
- As Impression Junior does not have the facility to create rulers with
- these extensions, they must be written using an ordinary text editor
- (such as !Edit) and imported into Impression where they become rulers.
- 4.12
- The commands that I know work are:
- 4.12
- font <font name> − e.g. Greek, Trinity.Medium, etc
- 4.12
- fontsize <size>pt − 8 to 20 is reasonable
- 4.12
- fontaspect <size>% −
- 100 normal, 200 stretches to twice size
- 4.12
- fontcolour rgb = (<n>,<n>,<n>) − n is from 0 to 1 or 0 to 100 (both
- appear to work)
- 4.12
- linecolour rgb = (<n>,<n>,<n>) − as above
- 4.12
- justify [left, right, centre, full] − full is to both margins
- 4.12
- underline [0,1] − other
- values also work but give strange underline
- 4.12
- strikeout [on, off] −
- writes ‘-’ over characters
- 4.12
- script [off, sub, super] −
- sub and super-scripts
- 4.12
- leader “<text>” − overwrites
- tab character
- 4.12
- By using these additional commands, it is possible to generate some very
- useful rulers.
- 4.12
- Simon Callan, Borehamwood. A
- 4.12
-
- Hints and Tips
- 5.1
- • FileUtils − Anyone using Ben Summers’ FileUtils should note that
- <ctrl-shift-F2>, <ctrl-shift-F3> and <ctrl-shift-F4> will still call up
- the FileUtils routines even when, say, working in Impression. This can
- give a nasty shock if you are, for example, trying to insert preset
- styles using <ctrl-shift-F4> and a “change filetype” dialogue window
- pops up. Mike Hobart, Cambridge.
- 5.1
- • Installing Desktop C − If you have recently upgraded from C to Desktop
- C, you may have a little difficulty installing Desktop C onto your hard
- disc. When you first try to run the ‘Install’ program, it will stop
- abruptly half way through the second of the four discs, with no clues as
- to what has happened. This is because the ‘Install’ program tries to
- create a directory called $.User. Cmodule, which already exists from
- your previous installation of C and so the program crashes. The solution
- is simple, just delete the old $.User.Cmodule directory before attempt
- ing to install Desktop C. D R Kennard, London.
- 5.1
- • LBP-4 CaSPL − Switching between Video output (for the CC Hi-Res board)
- and CaSPL output of the LBP-4 doesn’t appear to be documented in the
- manual. Here is how it can be done:
- 5.1
- From Video to CaSPL mode:
- 5.1
- 1. Hold down “Menu” for 3 seconds until “Mode=Video” is displayed.
- 5.1
- 2. Tap the “Menu” key once to display “Mode=CaSPL”
- 5.1
- 3. Tap “Enter”. The LCD will read “01 Ex Exit” then “00 Ready A4”
- 5.1
- 4. Tap the “Off-line” key to take the machine off-line (if the green
- on-line indicator is lit).
- 5.1
- 5. Tap “Feeder Select”.
- 5.1
- 6. Tap “Menu”. The menu as described in the manual is now displayed.
- 5.1
- From CaSPL to Video:
- 5.1
- 1. Take the printer off-line.
- 5.1
- 2. Hold down the “Menu” for 3 seconds − “Mode=CaSPL” is displayed.
- 5.1
- 3. Tap “Menu” again − “Mode=Video” is displayed.
- 5.1
- 4. Tap “Enter”.
- 5.1
- 5. You are now back in Video mode.
- 5.1
- Mike, Bainbridge, Derby.
- 5.1
- Impression Hints & Tips
- 5.1
- • Adding a frame at beginning of a story − It is not immediately obvious
- (well, it wasn’t to me!) how to add extra frames into a story that runs
- through a number of frames. Suppose you have two frames, B and C (I’ll
- get to A in a minute) − perhaps they are two main columns on this page −
- and you want to split column B into two frames leaving a gap in the
- middle. What you do is firstly shorten frame B using the frame handle at
- the middle of the bottom of the frame. Then you use <ctrl-I> and create
- a new frame wherever you want it under frame B (let’s call it frame B2).
- Now click on frame B with <select> and then on frame B2 with <adjust>
- and the text will flow into it so that it runs B−B2−C.
- 5.1
- Now suppose you want the text to start in a frame before frame B. (Let’s
- call it frame A.) The technique is to create the new frame, A, wherever
- you want it using <ctrl-I>. Then click on frame B with <select> and then
- on frame A with <adjust>. The text will now flow into it so that it runs
- B−A−B2−C−etc. (N.B. This won’t work unless frames A and B are on the
- same page because you cannot flow text backwards across a page bound
- ary.) Then click on B and use <ctrl-X> to delete it. The flow is now
- just A−B2−C−etc. Finally, you create a new copy of frame B by using
- <ctrl-V>, click on frame A with <select> and the new B with <adjust> and
- the flow will be A−B−B2−C−etc.
- 5.1
- • Dual window problems solved? − A few issues ago, I mentioned the
- problem that if you open a second window on a document and then expand
- and contract that window (so that you can alternately use two different
- scale views) each time you shrink view 2 using the icon at the top right
- of the window, it doesn’t stay at the place in the document that you
- have just been working on. It always seemed (in my case) to go back to
- somewhere earlier in the document. No one has offered any solution but
- it seems to me that it goes back to wherever you last added a frame into
- that window. So if you want to “keep your place” in the second window,
- use <ctrl-I> to create a new frame at that place in the document and
- then use <ctrl-X> to delete it again. Crude, but it seems to work. (No,
- it doesn’t, not always. Drat, I thought I had solved it! Come on,
- someone must be able to solve this one − I’ll give a free Archive mug to
- the first person to solve it. Ed.)
- 5.1
- • Equasor and matrices − The biggest drawback Equasor has for me as a
- mathematics teacher is its inability − at least in version 1.00 − to
- handle vectors and matrices.
- 5.1
- There is, however, a way in which a very credible matrix can be created
- − with a small amount of extra work:
- 5.1
- I build the columns as multiple fractions, and then enclose everything
- in brackets; I drop the file into Draw, remove the fraction bars and
- then align the brackets with the numbers.
- 5.1
- Jochen Konietzko, Köln, Germany
- 5.1
- • Special characters − Now I’m sure you ALL knew this, but I didn’t
- until I read this month’s PipeLine article. The Alt key is extremely
- useful for inserting special characters in the text. I had discovered
- that <Alt-space> (that’s holding the Alt key down and tapping on the
- space bar) gave a ‘hard’ space where you don’t what the words (e.g. the
- halves of a postcode) to be split across the end of one line and the
- beginning of the next, and I had discovered the idea of using Alt
- together with the numbers on the numeric keypad to produce special
- characters, but how about this...
- 5.1
- a² + b² = c³
- 5.1
- I produced that in seconds without using superscript. The ² is produced
- with <Alt-2> and the ³ with (yes, you’ve guessed) <Alt-3>. In other
- words, you hold down the Alt key, as if it were the shift key, and type
- 2 or 3. Here is a table of the ones I have found but note that this only
- applies to Trinity font which I am using. Other fonts may be different
- but, generally, they tend to stick to using the same symbols for the
- same ASCII numbers which the Alt key produces. The third column is the
- ASCII number produced.
- 5.1
- <Alt-1> ¹ 185
- 5.1
- <Alt-2> ² 178
- 5.1
- <Alt-3> ³ 179
- 5.1
- <Alt-9> ± 177
- 5.1
- <Alt-0> ° 176
- 5.1
- <Alt-C> ¢ 162
- 5.1
- <Shift-Alt-C> © 169
- 5.1
- <Alt-M> µ 181
- 5.1
- <Alt-R> ® 174
- 5.1
- <Alt-S> § 167
- 5.1
- <Alt-X> » 187
- 5.1
- <Alt-Y> ¥ 165
- 5.1
- <Alt-Z> « 171
- 5.1
- <Alt-`> ¬ 172
- 5.1
- (top left key under <esc>)
- 5.1
- <Alt-,> × 215
- 5.1
- <Alt-.> ÷ 247
- 5.1
- <Alt-space> 160 (hard space)
- 5.1
- If you have found any that I have missed, perhaps in other fonts, let us
- know. Ed.
- 5.1
- • Spell checking Edit documents − Whenever I typed a longish Edit text
- file, I used to regret the absence of a spell checker. For Impression
- users, this poses no problem:
- 5.1
- Simply drop the Edit file in question into an empty Impression frame,
- have Impression check the spelling, then export the text back into Edit
- by saving just the text story without styles. You can drag the text
- story onto the Edit icon to have another look at it or save it in the
- usual way directly to a disk. The import/export takes just a few
- seconds, so this is nearly as good as a spell checker built into Edit
- itself. Jochen Konietzko, Köln, Germany A
- 5.1
-
- 5.1
- Silicon Vision
- 5.1
- New
- 5.1
-
- 5.1
- Colton
- 5.1
-
- 5.1
- 4.12 p21
- 5.1
-
- 5.1
- Matters Arising
- 5.1
- • Archimedes’ Tutor − Simon Anthony has produced a Beginner’s D.I.Y.
- Introduction to the Archimedes using the !Hyper application on Shareware
- Disc 19. If anyone is interested they should contact him directly at 62
- Rutland Road, West Bridgford, Nottingham, NG2 5DG.
- 5.1
- • ArmSort − Fast Array Sorts − The author replies... The reviewer
- (Ashley Bowden in Archive 4.12 p53) seems to have created a problem with
- the flag values. The ArmSort documentation DID clearly state that for
- the CALL sort “The parameters must all be variables, but may be of any
- name”. If CALL sort,test%() ,128 is used, then it is Basic that objects
- with “Syntax Error”, ERR=16, because it is a Basic requirement that all
- CALL parameters are variables not constants. Thus it is rather unfair
- for the reviewer to claim that to have to use variables is “.. very
- unorthodox, and mention should be made in the documentation.” ArmSort
- errors are comprehensive and are very clearly documented.
- 5.1
- This ‘problem’ wasted about a third of the review, which could have been
- better used to mention the PROCsort and SWI interfaces or the ability to
- sort on absolute numeric values, or with null strings low or high.
- 5.1
- May I also suggest that all software reviews should clearly state what
- version is being reviewed: the ArmSort review copy was Version 2.12,
- sent to Archive in February. The current Version is 2.51, which has the
- following improvements: sort time reductions of between 30% and nearly
- 50%; the ability to sort strings from any position, or by length; the
- ability to specify a key sequence; new procedures for a fast binary
- search of sorted arrays; and all programs now do run easily from the
- desktop. All users have had free upgrades and seem happy with the
- product. Martin Avison, Avisoft.
- 5.1
- (Sorry if we seem to have reviewed an out-of-date product but when
- someone sends software to us for review, we have to assume it is a
- “stable” version. If the software has gone from version 2.12 to version
- 2.51 since February, this indicates continuous development. This is fine
- but, if significant changes are made, the onus is on the software
- supplier to send us the latest version. This product was still on the
- “software to be reviewed” list in the May edition of Archive. If Martin
- had noticed this and sent us the latest version at that stage, the
- difficulty might have been avoided. Ed.)
- 5.1
- • MidiVision Update − Koen Lefever has sent us an updated version the
- MidiVision program on Shareware Disc 33. It is now compatible with the
- new Acorn MIDI Podule ROM and capable of detecting real time messages.
- The new version has been put on this month’s program disc.
- 5.1
- • PRES Disc Interface & DFS − In the review in Archive 4.11 p27 we
- referred to difficulties in reading 40 track BBC discs. PRES suggested
- that the problem may be due to “residual data” on the discs. In other
- words, they are suggesting that the problem may lie with discs that have
- been written onto by different 40 track drives, some with narrow heads,
- as in 40/80 drives, and some with wider tracks as in true 40 track
- drives. It would be interesting to hear other people’s experiences on
- this. We have also found that it is sometimes necessary to slow the head
- stepping time right down as low as it will go in order to read 40 track
- discs. (We also used a rather old address for PRES. It is currently P.O.
- Box 319, Lightwater, Surrey, GU18 5PW. 0276−72046, fax 51427.)
- 5.1
- • RISC-OS Dreaming − I would like to reply to Oliver Gunasekara’s
- letter, RISC-OS Dreaming, published in Archive 4.12 p15. Many of
- Oliver’s suggestions have been extensively discussed in the USENET news-
- group dedicated to Acorn machines. Well-informed contributions from
- Acorn staff (in a private capacity) and experienced programmers (RISC-OS
- and otherwise) allow fairly definite predictions to be made as to the
- likelihood of some of these suggestions being realised in later version
- of RISC-OS.
- 5.1
- Firstly, there is almost no chance of proper demand paged virtual memory
- being implemented under RISC-OS on current generation ARM processors.
- The problem is that much (if not all) of RISC-OS runs with the ARM
- processor in its supervisor mode. In this mode, the ARM-2 and ARM-3 are
- unable to implement virtual memory. Not enough information is saved to
- enable execution to be resumed after an attempt to access memory not
- physically present causes the MEMC memory controller to interrupt
- execution. Thus, virtual memory would require a drastic rewrite of RISC-
- OS so that any code that might access virtual memory runs in user mode
- or avoids memory not physically present. Acorn almost certainly do not
- have the resources to do the necessary rewrite. Simpler, less effective
- forms of virtual memory such as swapping out non-running programs are
- possible, but would still be very complicated.
- 5.1
- Pre-emptive multi-tasking is, on the other hand, quite possible. It is
- just that doing it without introducing subtle bugs into software written
- under the assumption that multi-tasking is co-operative is fiddly. As
- with virtual memory, the fact that RISC-OS did not allow for pre-emptive
- multi-tasking, when originally written, makes it messy to implement
- later on. Even running other tasks when the current task is blocked,
- waiting for i/o, is rather tricky to implement though, according to the
- grape-vine, this does indeed happen to some extent in RISC-OS 3.
- 5.1
- As to nicer system fonts, better design, TCP/IP file-sharing and hot-
- linking − let’s hope it happens. There’s no technical obstacle and these
- are definitely things necessary for Acorn to keep up with the state of
- the art. A new file-system allowing more files in a directory and longer
- filenames would also go down well. It would be a real boon to people
- like myself who have to use RISC-OS machines in conjunction with UNIX or
- MesS-DOS boxes. Andrew Stevens, Overton.
- 5.1
- • RISC-OS Dreaming − I would agree with many of the points about RISC-OS
- 2.0 put forward (in Archive 4.12 p15), by Oliver Gunasekara. However,
- I’m not sure that making RISC-OS look more like other graphical
- interfaces will necessarily bring us much benefit.
- 5.1
- I am responsible for several different computer systems (micros and
- minis) each of which has its own user interface from the quirkiness of
- the Apple and Atari systems, to the smooth, powerful X-Windows systems.
- Some of the staff prefer one system, some prefer another. It’s a bit
- like choosing your favourite car, you get the one that suits you.
- 5.1
- Strangely enough, considering its sales, the least popular GUI in our
- department is Windows 3.0. Even allowing for its deficiencies, RISC-OS
- seems to have become the preferred choice for more than half our
- department. Whether this is due to RISC-OS itself, applications like
- Impression or the speed of the ARM3 powered machines, I’m not sure. What
- I am sure of is that RISC-OS is quite capable of winning converts from
- other systems.
- 5.1
- Even so, let’s hope that RISC-OS 3 contains a lot of those improvements
- mentioned by Oliver. D Hutchinson, Sheffield. A
- 5.1
-
-
-
- The Engineer Speaks...
- 5.1
- Ray Maidstone
- 5.1
- For the last few months, Ray Maidstone has been, effectively, the N.C.S.
- Service Centre. He has done a great job fixing dead or dying Archimedes
- computers for us and upgrading the memory of A310s. In doing so, he has
- come across various recurring problems which could be avoided if a few
- precautions were followed.
- 5.1
- Here are some hints & tips which should help to keep your Archimedes in
- tip-top condition. A word of warning though, some of the things I am
- suggesting should not be attempted unless you really feel competent to
- do so. The general rule is, if in doubt, ask for help!
- 5.1
- • 300 and early 400 series keyboards − (See also the article on page 37)
- These keyboards do not have sprung contacts coming together, but foil
- closing over multiple contact points on sprung pads. Various people have
- informed me that they have sprayed their keyboards with switch cleaner
- to improve things when they have had intermittent contacts on one or
- more keys. They may have got away with it, but it is my view that these
- keyboards should never be sprayed with switch cleaner. The only
- recommended method of servicing this item is to dismantle (but ONLY if
- you feel competent to do so!) and remove foreign particles with a soft
- brush and a vacuum cleaner. Anything sticky or difficult to remove is
- best left to your Service Centre. WARNING: Using switch cleaner which
- contains an organic solvent can destroy components within the keyboard
- and slowly but surely render it useless. Be warned! (We have a dead
- keyboard available for inspection if you are in any doubt! It was killed
- by using Tandy’s Tix Electronic Switch Cleaner. Ed)
- 5.1
- • Mouse − If you unplug your mouse, the recommended procedure for
- reconnection is to first disconnect the keyboard from the computer, plug
- the mouse into the keyboard then reconnect to the computer. The reason
- for this is that the mouse contains one solitary chip, which has no
- protection from spikes at switch-on from the outside world, whereas the
- keyboard has circuitry that is slightly better equipped to cope with any
- misadventures. Plugging the mouse into the keyboard and then plugging
- the keyboard into the computer is the safest method and could well save
- you money.
- 5.1
- • Monitor smear − On the 400 series computers, it is possible to get a
- composite video signal out of the sync socket which you can use for a
- mono monitor. This is done by making links LK5 and LK6. However, if
- these links are made, it can cause problems with certain high resolution
- monitors. You get a certain amount of smearing on the ends of horizontal
- lines. This effect is caused by the electronics of the Archimedes and
- can only be cured by removing the links. (I have a confession to make.
- Until we discovered this problem, we always tested our 400 series
- computers using a mono monitor. We added links 5 and 6 but did not
- remove them before sending out the computers. If you have had a 400
- series computer from us, I suggest you check for this effect and remove
- the links if necessary. Ed)
- 5.1
- • Video RGB outlet − On the 310 and early 400 series, it is possible to
- destroy the VIDC chip by plugging in the video lead to either the
- computer or the monitor if one or both of these items are switched on.
- The electronics of this socket do not accept the slightest static
- variation and any deviation will damage the VIDC chip. Whoops! − there
- goes another £30! I have designed a multiple diode module as a service
- modification which upgrades these old machines to the new static-
- protected specification. Whilst Acorn confirm that my modification is
- “Archimedes-legal”, they will not put their name to it as yet. This
- modification has been particularly well received by schools, as it stops
- pupils being able to blow up their computers!
- 5.1
- • Fan filters − With the fan driving air into the filter (lower half of
- the diagram below) it is possible for the filter, in its blocked state,
- to completely eliminate all airflow within the computer. However, with
- the fan sucking air through the filter (upper half of the diagram
- below), even if the filter becomes totally blocked, residual air
- currents will still flow within the computer, providing some “last
- resort” cooling. Also, with the filter on the outside of the fan,
- cleaning couldn’t be easier. All that is needed is to slide the lid back
- 10 cm (or 4 inches for those of us still in Imperial!) and suck the dust
- off the filter with a vacuum cleaner.
- 5.1
- • Hard drive parking − After much debate and the dismantling of two
- unserviceable hard drives, I have found that, in order to give your data
- maximum protection at closedown, *BYE must be followed by *SHUTDOWN.
- These two commands, although slightly similar, do not seem to perform
- the same task and, to my satisfaction, have been proven to be necessary
- in the order stated. The effects of closing the drive down can be
- verified acoustically and visually, e.g. *BYE will produce one staccato
- tick noise and a short flash on the hard drive LED, but this does not
- mean the drive is fully parked. Typing *SHUTDOWN will produce a multiple
- wink of the hard drive LED and a triple tick noise from the drive. Take
- my word that this guarantees total shutdown of the drive. If *SHUTDOWN
- is typed without having typed *BYE, a single tick will be heard and the
- drive will simply have moved the head to a different track, but it will
- not be fully parked. (Different effects happen on different drives under
- this condition.)
- 5.1
- (Some may call this a “belt & braces” method, but when it comes to
- protecting several hundred pounds worth of hard drive, I prefer to err
- on the side of caution. Ed)
- 5.1
- • Removable hard drive parking − The command DISMOUNT brought up by
- clicking <menu> on the SCSI icon, does not mean your drive is parked. It
- simply means that the drive has shut its motor down and that the
- software has “forgotten” about the drive in question. At this point, if
- you switch the power off, the heads have been left out over the disc at
- the last track you were using and will be in the same position next time
- you switch on the power. In order to eliminate the possibility of power-
- on destroying any data bits, the centre button on the removable drive
- must be pressed and the drive fully disengaged with the lever. This
- operation mechanically parks the heads off the disc and is the only way
- to guarantee this.
- 5.1
- • Stray metalware − When removing the motherboard on the 300/400 series,
- it is very possible to dislodge one or more of the spring speed nuts
- (for the two rear self tapping screws that “get in the way” when
- removing the board). Make sure these are firmly in place when reassem
- bling − better still, remove them, clamp them slightly more closed and
- refit. This will prevent any further mishap which could cause shorting
- under the main PCB.
- 5.1
- • Stuck floppy discs − It is unfortunately possible, now and again, for
- a floppy disc to become stuck in the drive. This will be due to one of
- the following causes, and if you wish to keep costs to a minimum, NEVER
- tug at, or forcibly remove, the stuck item.
- 5.1
- (Again, we have u/s floppy drives available for inspection if you need
- proof. Ed.)
- 5.1
- 1. The metal sliding cover on the disc can become widened, perhaps due
- to being bent in the post, or being sat on or whatever. As the metalwork
- of the slider opens, it will act like a ratchet allowing the disc to go
- in but not to come out without difficulty.
- 5.1
- 2. The spring that returns the metal cover can become unlaced and behave
- like a fish hook, snagging the unlocking post within the drive.
- 5.1
- 3. The metal screening plate on the upper disc reading head within the
- drive can become dislodged and catching the plastic work of the disc
- (particularly on the older Sony drives).
- 5.1
- In ALL cases, if the drive is removed by somebody competent to do so,
- you should find that delicate easing will allow the disc to come out
- again without damaging the drive and, 9 times out of 10, the disc can
- also be saved.
- 5.1
- In the case of the metal head shield of the Sony drive, simply throw it
- away as it was later found to be unnecessary. Where the metal gate of
- the drive is distorted, it is quite acceptable to remove this item by
- unfolding it and removing the spring. The disc will operate without the
- metal cover but keep little fingers out − remember the 5¼“ floppies? A
- 5.1
-
- Hints and Tips
- 5.2
- • Fatal error type = 5 revisited (Archive 4.12 p9) − It’s not only !Edit
- that reports this error, !Draw and some other Applications abort with a
- similar error, but you might want to use !Edit, for example, with fonts.
- The version in Archive 4.12 p9 simply hides the !Font-folder, so the
- idea is to have the Applications just to see part of the !Fonts folder.
- The easiest thing to do is simply to split up the fonts-directory into
- directories − i.e. create two directories within !Fonts − in the first
- directory (maybe SmallFonts within your !Fonts Folder) just put the
- really necessary fonts in (just Trinity, Homerton, Corpus or so), but
- remember that there may only be up to 50 fonts (approximately) −
- including styles (say Italic, Medium, Bold etc). In the second directory
- (maybe LargeFonts) put every font that is not already included in the
- first directory.
- 5.2
- The next thing to change is your !Boot and !Run-File from the !Fonts
- application.
- 5.2
- The !Boot file should read as follows:
- 5.2
- | !Boot file for !Fonts
- 5.2
- | *********************
- 5.2
- IconSprites <Obey$Dir>.!Sprites
- 5.2
- RMEnsure FontManager 2.42 RMLoad <Obey$Dir>.Fonts
- 5.2
- RMEnsure SuperSample 0.04 RMLoad <Obey$Dir>.Super
- 5.2
- Set Small$Fonts <Obey$Dir>. SmallFonts.
- 5.2
- Set Large$Fonts <Small$Fonts> ,<Obey$Dir>.LargeFonts.
- 5.2
- If “<Font$Prefix>”=“” Then SetMacro Font$Path <Font$Prefix>
- 5.2
- If “<Font$Prefix>”=“” Then Set Font$Prefix <Large$Fonts>
- 5.2
- SET Alias$@RunType_745 RUN <Obey$Dir>.FontHelp -Obey %%*0
- 5.2
- SET File$Type_745 FontObey
- 5.2
-
- 5.2
- The !Run file should read as follows:
- 5.2
- | !Run file for !Fonts
- 5.2
- | ********************
- 5.2
- Obey <Obey$Dir>.!Boot
- 5.2
- Echo Outline Font Manager 2.42 installed.
- 5.2
- Echo Fonts now available:
- 5.2
- Echo
- 5.2
- FontCat
- 5.2
-
- 5.2
- In addition, you have to create a Basic program called Fonthelp, which
- should be situated in the !Font folder and should read like this:
- 5.2
- REM >FontHelp Version 1.00 20.1.91
- 5.2
- REM *******************************
- 5.2
- REM Written by: Martin Sperl
- 5.2
- REM Nattergasse 12/32
- 5.2
- REM A-1170 Vienna (Wien)
- 5.2
- REM AUSTRIA
- 5.2
-
- 5.2
- END=&A000
- 5.2
- DIM Data 255
- 5.2
- SYS“OS_GetEnv” TO ENV$
- 5.2
- ENV$=MID$(ENV$,INSTR(ENV$,“-Obey ”) +6)
- 5.2
- *SET Font$Prefix <Small$Fonts>
- 5.2
- SYS “Hourglass_On”
- 5.2
- SYS “Wimp_Initialise”,200, &4B534154,“**LoadMore**”
- 5.2
- TO ,TaskHandle%
- 5.2
- SYS “Wimp_StartTask”,“OBEY ”+ENV$
- 5.2
- REPEAT
- 5.2
- SYS “Wimp_Poll”,0,Data TO R%
- 5.2
- UNTIL R%=0
- 5.2
- SYS “Wimp_CloseDown”,TaskHandle%
- 5.2
- *SET Font$Prefix <Large$Fonts>
- 5.2
- SYS “Hourglass_Off”
- 5.2
- END
- 5.2
- Then create a sprite called “file_745” (maybe the same sprite as for an
- Obey-file, but another colour) and include it in the !Sprites file of
- !Fonts.
- 5.2
- To start an application which can only handle some fonts without errors
- just change the Filetype of the !Run-file with “Settype !Run FontObey”
- to FontObey. Then you can start the application as normal without having
- to worry about fonts at all.
- 5.2
- Martin Sperl, Austria
- 5.2
- • Formatting PC disks − If, like me, you do not have a PC Filer on your
- Archimedes you will have to format DOS diskettes (for use with the PC
- Emulator) on a PC. If your PC has a 1.44M drive the standard FORMAT
- command needs modifying. The command to use is
- 5.2
- FORMAT A: /N:9 /T:80
- 5.2
- This certainly works on the PS/2 55SX I have at work. Richard Wheeler,
- Wokingham A
- 5.2
-
- 5.2
- Impression H & T
- 5.2
- • Function key changes − Computer Concepts have chosen to use <ctrl-F3>
- and <ctrl-F4> for ‘save’ and ‘search and replace’ instead of the more
- standard <F3> and <F4>. If you prefer to use the latter, simply go into
- the edit styles dialogue (<ctrl-F6>), select first italic and then bold
- and, on each, change the keyboard shortcut (or delete it altogether), as
- follows... You could, for example, change from <F3> to <shift-ctrl-F3>
- by clicking in the shortcut box, pressing <ctrl-U> to delete the
- existing text and pressing <shift-ctrl-F3>, at which point the words
- “<shift-ctrl-F3>” will appear in the box. Click OK and <F3> will now
- produce the desired “save” effect.
- 5.2
- If you already have a lot of documents, this could prove a frustration
- since you would have to do this with every document individually. Also,
- you would need to go into Impression’s Auto directory and edit the
- default document. Michael Ben-Gershon, Israel.
- 5.2
- • Only 77 graphics frames allowed in a chapter − Impression won’t allow
- more than 77 graphics frames in a single chapter. This is due to the
- ADFS limitation of 77 files per directory − earlier versions of
- Impression (2.03) normally crashed after loading the offending file when
- displaying. Impression 2.1 does not allow to save a file with more than
- 77 graphics-frames per chapter. I mentioned it to CC but they told me
- “This is something that would be extremely difficult to overcome. It
- should only affect a very small percentage of users”. So beware of too
- many frames in one chapter !!! Martin Sperl, Austria
- 5.2
- Couldn’t you get round this by putting several draw objects together in
- a single file and then show different parts of the same file in
- different frames? I haven’t tried it, but it should work. Ed.
- 5.2
- • Running Impression documents from !TinyDirs − If you use !TinyDirs to
- install an Impression document on the icon bar and then click on it to
- run it, a new copy of !Impress will be fired up even if one is already
- running.
- 5.2
- This seems to be because of a small mistake in the !TinyDirs.!RunImage
- programme. In the PROCdataopen procedure are two lines which read as
- follows:
- 5.2
- 900 q%?(44+LEN$(q%+44))=0
- 5.2
- 910 q%!0=(48+LEN$(q%+44))ANDNOT3
- 5.2
- If you reverse the order of these two lines the program runs correctly.
- Hugh Eagle, Horsham
- 5.2
- • Special Characters − The full list of ISO 8859 characters is included
- in the Archimedes User Guide, e.g. page 455 for the Latin 1 alphabet.
- However, it’s not too helpful in that it is listed in hexadecimal. If
- you want to enter characters using <Alt> and the numeric keypad, you
- need to know the decimal numbers. Those of you with EFF fonts will have
- a manual that shows various of the character sets by decimal number.
- This is particularly useful for Zapf Dingbats and MathGreek fonts. Jim
- Nottingham, York.
- 5.2
- (For those without EFF fonts, I have put an Impression file on the
- monthly program disc so that you can print out your own lists of
- characters just by changing the font in the style definition. Ed.)
- 5.2
- • Wrong sprite colours in Impression − If, when you drag a sprite into
- an Impression frame, the colours come out all wrong, it’s probably
- because the sprite has not got a palette. If so, the answer is to give
- it a palette, which can be done as follows:
- 5.2
- 1. Load the sprite file containing your sprite into !Paint.
- 5.2
- 2. Double click on the thumbnail picture of the sprite you want to
- alter.
- 5.2
- 3. Click <menu> over the sprite window that now appears, then move to
- the Edit submenu and click on the Palette item at the bottom.
- 5.2
- 4. Save the amended sprite file.
- 5.2
- 5. Load the amended sprite back into Impression.
- 5.2
- (Note: if you don’t want to keep the amended sprite, you can, if you
- like, shortcut steps 4 and 5 and save the sprite direct from !Paint into
- Impression.) Hugh Eagle, Horsham A
- 5.2
-
-
-
- Finally, Andrew Scott...
- 5.2
- The following comments and hints are based on my first week of using the
- machine which, from the outset, I must say is brilliant, especially
- compared with my old Archimedes A310.
- 5.2
- During the time I have had the machine, I have tried quite a number of
- applications. Now, whilst most of them have worked perfectly, I have had
- problems with the following: Atomwide Hi-Res. modes, Jinxter and
- Corruption adventures (CIS Adventure pack), Beebug Toolbox disc sector
- editor, Data Store’s FontFX (version 4.04), Mitre Software’s DiscTree
- (version 2.16) and !DSEdit, PD sound sample player.
- 5.2
- The Atomwide mode designer comes with a number of sets of modes for
- various monitors, but none of these is completely suitable for the A5000
- and Acorn’s multisync monitor. The mode designer application, however,
- works fine, provided you remember to select monitor type 1, and machine
- A540/A5000. Using this, it is quite straightforward to modify the hi-
- res. modes (SVGA, 102 etc.) to produce working versions of these.
- However, make sure that you work in mode 27 while defining the new
- modes, as some of the other modes (12, 15 etc.) are redefined by the
- standard mode module (MegaModes), and this can produce some strange
- effects − they appear as two letter box shaped screens one above the
- other!!
- 5.2
- The adventures Jinxter and Corruption do not work with version 3.87 of
- the SharedCLibrary which is in RISC-OS 3. However, they are supplied
- with a very old version (1.01) which will work if you *RMKill the
- version in RISC-OS 3 first. Better still, alter the !Run files to
- automate this, and restore the RISC-OS 3 version afterwards. I have
- included two suitable !Run files on the disc. On the monthly program
- disc. Ed.)
- 5.2
- The disc sector editor in Beebug’s Toolbox (version 1.00) does not work
- at all on the A5000, and hangs the machine!!
- 5.2
- FontFX from the Data Store (version 4.04) does not like the default
- setting for the system macro Font$Path. However, if you edit out the
- reference to Font$Prefix it works OK − not a perfect solution, but it
- works. e.g.
- 5.2
- *SetMacro Font$Path adfs::IDEDis c4.$.!Fonts.,Resources:$.Fonts.
- 5.2
- DiscTree (version 2.16) from Mitre Software will load, but all attempts
- to access a disc (hard or floppy) produce a fatal internal error.
- 5.2
- !DSEdit, the excellent PD sound sample player will not play samples.
- This is because the author has been ‘naughty’ and used an abbreviation
- for the ChannelVoice command. RISC-OS 3 wrongly interprets the abbrevia
- tion as the new command *ChangeDynamicArea and hence causes an error.
- This is easily corrected by changing the abbreviation to the full
- command. Acorn have issued a warning with RISC-OS 3 that a number of
- commands have different minimum abbreviations, and have provided a file
- on the RISC-OS 3 Support Disc to change them all back to what they were
- in RISC-OS 2.
- 5.2
- Something else that I have observed is that if you use the !Configure
- application to auto-start any of the ROM based applications then this
- will cease to work if you have a !Boot file on the hard disc which
- includes a line like :
- 5.2
- *Desktop -file <Obey$Dir>.DeskS tart
- 5.2
- Instead you must include a line in the DeskStart file to run each of the
- applications which you want to auto-start. e.g.
- 5.2
- Run Resources:$.Apps.!Alarm
- 5.2
- Hardware problems − (I have left this in to see if anyone has any ideas!
- Ed.) I have discovered a fault with my machine, that concerns the real
- time clock. Every time the machine is reset with either <ctrl-break>, or
- turning it off and on again, the real time clock is reset back to the
- last time that it was explicitly set too, e.g. using *Set Sys$Time or
- the Set clock option on !alarm. The rest of the time, the clock appears
- to function correctly.
- 5.2
- My first thought was a loose battery connection. However, on opening the
- case, I found that the machine doesn’t even have a battery! While the
- case was off, I checked for any loose connections, but could not find
- any.
- 5.2
- Next, I thought that it might be a software fault and not a hardware
- one, because the fault only occurs when the machine is reset, which is a
- software function. I noticed that in the list of modules in RISC-OS 3
- there is a new module called RTCAdjust which presumably stands for Real
- Time Clock Adjust. Could this be causing the problem? The module
- provides no star commands or software interrupts, only a service code
- handler. I have not been able to confirm if this module is causing the
- problem or not. Any ideas? A
- 5.2
-
- The Engineer Speaks (again)
- 5.2
- Ray Maidstone
- 5.2
- As there were several comments of appreciation received regarding the
- hardware care section labelled “The Engineer speaks” last month, further
- points of interest have been forwarded and are listed here.
- 5.2
- Headphone sockets
- 5.2
- These stereo sockets are mechanically very delicate and several machines
- have been in for repair. (This is presumably because these sockets are
- getting used more now that there seems to be a little more notice being
- taken of the fact that the Archimedes is capable of matching other makes
- of computer, when it comes to music and sound effects.) The replacement
- of these sockets is fairly simple but involves completely dismantling
- your machine and getting the motherboard out.
- 5.2
- More serious is the fact that we’ve had some machines in for repair with
- the sound output chip blown. Although this is a very cheap repair, I can
- only think that this was caused by people using the socket whilst music
- was actually playing! Looking at the circuit diagram, I find it
- difficult to see how shorting the contacts in the socket by plugging in
- headphones, or whatever, whilst it is playing should be able to blow
- anything up, but there it is. I suggest it would be for sensible to
- cause your machine to be silent while plugging things into this socket.
- 5.2
- RGB video output failure
- 5.2
- Further to the question “Does disconnection or connection to the RGB
- socket while things are switched on blow the VIDC (Video Output) chip?”
- The answer is most definitely yes, even though several people have
- expressed surprise, saying “Well, I’ve plugged and unplugged mine for
- years and years, and I’ve never had any problems.”
- 5.2
- The fact is that eventually it will blow up, as there simply isn’t any
- static protection in the early machines. The modification I mentioned
- last month has sparked a lot of interest. (Bad choice of words there,
- Ray! Ed.) We can fit this for you and we can offer this item, fitted for
- £15, but you will have to sort out the carriage.
- 5.2
- This protection feature is already incorporated into the 400/1 series,
- the 3000 and everything since, and will only be needed in the 300 series
- and the early 440’s. To my certain knowledge, this modification has put
- an end to the grief being caused by pupils “in the know” at a couple of
- schools, deliberately plugging and unplugging monitors and Arabellas
- (that’s what VIDCs are called) are not cheap.
- 5.2
- A3000 crashes and aborts
- 5.2
- My findings on this subject are a bit distressing and, to make matters
- worse, I own one of these troublesome machines and can speak from
- experience. We have had a slowly increasing number of people losing work
- because their 3000 occasionally crashes with the “Abort on transfer”, or
- “Address exception” captions coming up. These problems have been traced
- to impedance peculiarities on the pin and socket connections of the
- expansion ram cards. At first, the ram expansion itself was suspected
- but we have finally discovered that these connections sometimes go high
- impedance at the high frequencies of the ram access speeds. The
- “sometimes” is what’s giving the problem, as the bulk of these expan
- sions run trouble free.
- 5.2
- My own belt and braces solution to this has been to remove the pins and
- sockets, and replace them with gold plated counterparts − No more
- problems! This, of course, is “open heart” surgery and, if not done by
- an Acorn Service Centre, will invalidate any guarantee and, if it is not
- performed using the correct equipment, it can destroy the machine as
- well. (Solder suckers are completely incapable of performing this task
- and the 4 layer board is too delicate to risk damaging.)
- 5.2
- I have helped several people out with a temporary DIY tip that consider
- ably improves the reliability of these connections. However, you should
- only attempt this if you are familiar with opening your machine and
- fiddling inside it. Locate the ram board, lift it off the P.C.B.
- expansion pins and lay the board to one side. Take a can of WD40, or
- Contek 9, but nothing else, and find a clean bottle top or small dish.
- Spray some of this into the cup and, using a cotton bud, carefully rub
- around all the expansion pins, taking care not to distort any. Do not
- spray anything directly into the machine.
- 5.2
- This should be done in a well lighted area and at the end, the pins
- should be slightly moist (not too much and not too little!). Take the
- ram card, and offer it onto the pins, checking that all pins align
- properly into their relevant socket, and press it down. (Check that the
- speaker wires do not get in the way.) Once the board has “bottomed”,
- pull it back up again about ¼“ (6mm), and then ease it down until it
- still about 1/32” (1mm) away from the bottom. Don’t push it all the way
- down this time so that it leaves the connectors on “fresh” metal. This
- procedure should temporarily relieve the crash situation but the
- following test will reveal whether your problem is corrosive or
- mechanical.
- 5.2
- Leaving the lid off, (beware of the high voltages in the power supply if
- your machine has a cardboard p.s.u. cover) connect your machine up to
- monitor and mains − no other connections are needed − and switch on. You
- should now have the desktop visible on your monitor. If your expansion
- is Atomwide then very slightly rocking it from front to back (Do not
- exceed ¼“ movement) will not disturb the display if the fault was
- corrosion. If the fault was mechanical, you will see the Address
- Exception or Abort error flag, in which case the problem is mechanical
- and you need to rush to your nearest Acorn Service Centre.
- 5.2
- If you have the Morley board, this is a little more difficult, as you
- will have to carefully hinge up the keyboard and find a way of holding
- it up (get someone to help you, as if you drop it you could short
- something, or break the flexible connector strips) and now take hold of
- the front edge of the board and raise and lower it about 3/8“ and watch
- for the same effects as already mentioned.
- 5.2
- (This problem would probably have been averted if the pin and socket
- components used at time of manufacture had been the gold flashed type,
- but this obviously would have increased the product cost.)
- 5.2
- STOP PRESS
- 5.2
- After talking to another dealer at the recent Acorn User Show, I have
- been able to find out from a couple of their personnel (unofficially)
- that Acorn did indeed have a couple of batches of A3000’s that came with
- oxidized expansion pins. So I suggest that either you offer your machine
- to your dealer for him to sort out, or heed the above instructions, and
- also try a light rub with a very small piece of “Scotchbrite” or pan
- scourer. Do not use anything metallic because that will leave a
- residue. A
- 5.2
-
- Hints and Tips
- 5.3
- • AMX mouse − To replace the Archimedes mouse with an AMX mouse from a
- BBC computer, all that is necessary is to change the plug on the AMX
- mouse for a miniature 9 pin DIN plug. The correct plug can be obtained
- from Maplin Electronics (0702−554161). It is stock number JX19V (price
- 82p +p&p). Cut the original 20 way IDC connector off the mouse cable and
- then solder the wires onto the new plug. The pins are very close
- together, so a fair amount of care is required. It is easiest to start
- with the middle pins and work outwards. I found that the plastic housing
- supplied with the plug was just too wide to fit into my A3000 but it can
- easily be cut smaller with a sharp knife.
- 5.3
- Paul Marshall, Loughborough.
- 5.3
- (Has anyone got the connections to do the same sort of thing but with a
- BBC Trackerball? Ed)
- 5.3
- • Cops and Plague Planet − I should like to pass on the following advice
- received from Alpine.
- 5.3
- Both Cops and Plague Planet re-configure the character set used to their
- own. If you have a copy of Alpine Software’s ALPS (Adventure Language
- Programming System) this contains a copy of the default Archimedes
- character set e.g. $.!ALPS. Resources.defaultchr.
- 5.3
- Copy this file to the appropriate games directory (e.g.
- $.COPS.defaultchr), and add the following line at the very end of the
- appropriate !Run file (e.g. for Cops):
- 5.3
- Print <Cops$Dir>.defaultchr
- 5.3
- This will then automatically reset the computer to the default system
- font upon returning to the Desktop. Rob Brown, Tadworth
- 5.3
- • Corruption and Jinxter − I have recently transferred a number of the
- earlier Magnetic Scrolls adventure games from floppy to hard disc and
- have encountered certain problems with their usage of the Shared C
- Library !System module.
- 5.3
- Fish! does not use the Shared C Library at all. Both The Guild of
- Thieves and The Pawn came with version 3.50 of the Shared C Library and
- they function with more recent versions without any difficulty. However,
- my copies of Corruption (version 1.12) and Jinxter (version 1.30) came
- with version 1.01 of the Shared C Library and they will not function at
- all with any of the more recent versions.
- 5.3
- What I wanted to achieve was an easy means of starting either program
- straight from the Desktop and automatically loading the “old” version of
- the Shared C Library. After some trial and error I have found one way
- round this by modifying the !Run files for both applications.
- 5.3
- Firstly, version 1.01 of the Shared C Library needs to be copied to a
- suitable directory within the !System application on the hard disc (e.g.
- $.!System.oldModules.CLib_v101).
- 5.3
- Unfortunately the command RMEnsure will not only check for a particular
- version of a module but it will also accept more recent versions. In the
- !Run file I have therefore used this command to check whether a
- subsequent version (e.g. 1.02) of the Shared C Library is already loaded
- and, if not, the most up to date version is loaded from the !System
- application. The command RMKill is then used to delete this module
- before loading the “old” version 1.01 of the Shared C Library. Finally,
- after exiting the program, the “old” Shared C Library is deleted, the
- latest version (currently 3.75) is re-loaded, and the !Run file finally
- returns control direct to the Desktop.
- 5.3
- | !Run file for Corruption
- 5.3
- | (or Jinxter − change references from “Corruption” to “Jinxter”)
- 5.3
- | (requires Shared C library version 1.01 dated 13-Jun-88)
- 5.3
- |
- 5.3
- IconSprites <Obey$Dir>.!Sprites
- 5.3
- WimpSlot -min 512K -max 512K
- 5.3
- |
- 5.3
- Set Corruption$CLibLoaded 1
- 5.3
- RMEnsure SharedCLibrary 1.02 Set Corruption$CLibLoaded 0
- 5.3
- If Corruption$CLibLoaded=0 then If “<System$Path>” = “” then Error
- System resources cannot be found
- 5.3
- If Corruption$CLibLoaded=0 then RMLoad System:Modules.Clib
- 5.3
- RMKill SharedCLibrary
- 5.3
- RMLoad System:oldModules.CLib_v101 .Clib
- 5.3
- RMEnsure SharedCLibrary 1.01 Error You need SharedCLibrary
- 5.3
- version 1.01 ONLY
- 5.3
- Unset Corruption$CLibLoaded
- 5.3
- |
- 5.3
- Set Corruption$Dir <Obey$Dir>
- 5.3
- Run <Corruption$Dir>.Corruption.f1 <Corruption$Dir>.Corruption.f2
- 5.3
- |
- 5.3
- |
- 5.3
- RMKill SharedCLibrary
- 5.3
- RMEnsure SharedCLibrary 3.75 RMLoad System:Modules.Clib
- 5.3
- RMEnsure SharedCLibrary 3.75 Error You need SharedCLibrary
- 5.3
- version 3.75 or later
- 5.3
- Desktop
- 5.3
- WARNING − any other programs active within the Desktop should be closed
- down and any files saved before starting either Corruption or Jinxter −
- especially those programs which use the Shared C Library! Perhaps
- another reader can find a way round this?
- 5.3
- Rob Brown, Tadworth
- 5.3
- • Elite − When you start Archimedes Elite, it prompts you to enter a
- word from the manual, as an anti-piracy precaution. When it says “type
- the word exactly as shown” it means the input is case sensitive. You
- have to remember to take the Caps Lock off. This falls into the category
- of “obvious to most people” but hopefully this hint will save somebody
- the frustrating quarter of an hour which I spent trying to get the thing
- to work when it first arrived.
- 5.3
- People who are used to the 8 bit version of the game should watch out
- for little things which have changed. For example, furs are now illicit
- cargo in the same way that narcotics and firearms are. You are told this
- in the manual but you have to look for it pretty carefully!
- 5.3
- Neil Hoggarth, Winchester A
- 5.3
-
- 5.3
- Impression Hints & Tips
- 5.3
- • Position holding − My repeated plea for a way of holding the current
- position in a document when you expand and contract the window has been
- answered! A box of four Archive mugs is winging its way to Bob Potter of
- Bath. He gave me the basic idea which I have amplified slightly.
- 5.3
- Basically, as Bob pointed out, when you expand and contract the window,
- Impression returns to the position that was current when the window was
- small. (Surely, CC, this isn’t very sensible, is it? You are more likely
- to change the current position when working in the full size window. Why
- not change it whenever you move about within the document?) Anyway,
- given that this is how it works at present, all you have to do to
- maintain your position is, as soon as you have shrunk the window, press
- <cursor-left> (and then <cursor-right> if you want to) so that the
- current position will be displayed and remembered within the small
- window. The only slight disadvantage with this is that if the small
- window is very small, you will find the cursor near to the top of the
- window when you expand it, not near the middle. Thanks, Bob! A
- 5.3
-
-
- The Engineer Speaks
- 5.3
- Ray Maidstone
- 5.3
- • Hard drive mounts − Several customers have had cause to ship their
- Archimedi to me for repair, and a hardware problem has come to light.
- Some of you have purchased hard drives that have been mounted on thin
- aluminium brackets. These rather flimsy brackets easily distort under
- small amounts of G stress and, unfortunately, a few harddrives have gone
- to the great hard disc graveyard in the sky. Aluminium was used by the
- Airforce because of its tensile properties, and should (due to this very
- fact) not be used to anchor a hard drive. These small brackets deform
- under stress and leave the drive “flapping” about.
- 5.3
- Another comment about brackets − a lot of them are fine for their
- supporting properties but not very good when it comes to air circula
- tion. This can be improved by either punching some 3/8“ holes in the
- sides, or by buying a pair of Paul’s new nifty side brackets at £4 a
- pair. We have had a few instances of over-heating causing premature
- decease of drives, particularly with back planes full of podules and a
- partly blocked filter. It is possible that, by reducing the bracket
- size, this could have been avoided.
- 5.3
- • *Shut and *bye − The last word! I have not, at any time in my
- comments, stated that the suggestions I have made are law, I have merely
- offered the result of my findings to those who hadn’t a clue of what was
- going on. There are a few small, old drives that need both, but most
- only need one command to park. The removables, however, most certainly
- do not park, and only the operating lever finally parks the heads. These
- findings came about from observations of partially dismantled units
- operating under standard command use.
- 5.3
- • LBP4 laser printers − I have been asked about switch on/off procedures
- for these, and I reckon that, to minimise “spikes”, the order should
- be... when switching on, either do so all together or the printer last,
- and turning off, either do it all altogether or switch off the printer
- first.
- 5.3
- • Cooling − Following the success of quietening the fans on Archimedes,
- external hard drives have now been added to the list, and no heat
- problems have arisen (mainly because of 14 months of actual proving
- before releasing). Whilst assessing the quietening for these drives, it
- was surprising to find just how mechanically noisy some makes of fan
- were, as nearly 50% of the noise from the unit was being conducted
- through the chassis assembly.
- 5.3
- I have also been asked “If I don’t like Acorn’s cooling method, what
- would I like instead?” My reply is that, in my opinion, the current fan
- with or without a quietener (that never lets the fan speed drop below
- 75%) is not quite enough in the real world. Particularly if the filter
- is on the inside, hardly anyone appears to pay much attention to keeping
- the filter clean. Therefore, I have found a rather nice miniature fan
- (currently being used by Morley in their external hard drives) that,
- when introduced into the opposite side of the case to the present
- arrangement, and being set to push air out of the case as the other
- sucks it in, really gets some cooling done.
- 5.3
- A cautionary note about airflow is not to stand external floppy and hard
- drive units too close to the sides of the Archimedes, or soft surfaces
- under the A3000, as “what goes in must come out” and I have seen several
- instances of hot machines being caused by the proximity of external
- surfaces. The A3000 has a power supply that runs quite hot and, being
- encased in fireproof cardboard, (on the earlier machines, anyway) made
- things even more heated. I am using the miniature fan, aimed at the end
- of the P.S.U., to assist temperature differences in this rather enclosed
- environment. If anyone is interested in more details, let me know. This
- small fan gives off very little sound and certainly improves longevity.
- The lack of space inside the A3000 generally adds to the poor cooling in
- the P.S.U. and any air movement is better than none.
- 5.3
- I made the comment above about fan quieteners not slowing the fan more
- than 75% because, in the course of my development, I also tried systems
- that reduced the fan speed to 40%, and also did one trial where I
- stopped it all together for the first quarter hour, as no heat would
- build up until after this. The fan would then thermostatically cut in
- and then run in a varied way subject to temperature requirements. These
- were all dropped due to the fact that, as the Archimedes box is not at
- all aerodynamic, once the temperature began to build up, certain items
- within it started to experience particularly large temperature rises
- i.e. hard drive, P.S.U. and floppy drive. The final unit chosen simply
- took the fan below the noise of air flare speed and, together with the
- chassis decoupling grommets, removed so much noise that only the sound
- of the hard drive rang in the ears. I would caution people against using
- controllers that slow the fan excessively.
- 5.3
- • IDE cabling − I notice that IDE drive cables have been quoted as long
- as 20“. I have it on very good authority that in some cases, even 12” is
- pushing it. This is because IDE signals tend to be far more easily
- corrupted than those on SCSI lines. So please be warned and keep them as
- short as possible. A
- 5.3
-
- Hints and Tips
- 5.4
- • A5000 monitor problem − One problem which various people seem to have
- had with the Acorn A5000 monitors is intermittent contact on the mains
- cable but the solution is simple. When you plug the power cable into the
- monitor, it seems to go in but actually, to get it fully home, you have
- to push it very firmly.
- 5.4
- • Draw files in Impression − Did you know that when using Draw files in
- Impression frames, it is possible to “zoom” in on a part you want to
- concentrate on and bring it up to “fill the frame”? This means you can,
- for example, call up a file of, say, a fruit filled bowl and then choose
- the apple to fill the space available in your document or show a group
- of cartoon figures and, in the next frame, have a “close up” of one
- face. Since Draw files are capable of incredible scaling, their should
- be no real loss of detail involved.
- 5.4
- The procedure is simple. Create a frame for the draw file. Open the
- directory containing the Draw file. Drag it into the frame in the usual
- way. Changing the shape of the frame with its handles using <select>
- will “crop” the picture until only the part you require is visible. Then
- enlarge the frame using the adjust button on the corner handles. The
- cropped picture will “grow” with your mouse movements. (Well, stone me!
- I didn’t know that! Please keep sending these “obvious” hints − they are
- not obvious to everyone. Ed.)
- 5.4
- Incidentally, don’t try moving a frame containing a Draw file around the
- page using the usual method of pointing inside it, holding down <select>
- and waiting for the blue lines to appear. If you don’t wait quite long
- enough, the graphic moves inside the frame and bang goes your careful
- alignment! Instead, hold down <ctrl> when you press <select> and the
- frame can be moved safely and immediately. Kevin Beales, Shropshire.
- (The latter hint was also sent in by Johannes Thordarson of Ice
- land.) A
- 5.4
-
- Hints and Tips
- 5.5
- • A5000 PC delete danger – I found out the hard way that deleting the PC
- directory (and probably Drive_C as well) gives a disc error over the
- area of the deleted partition. The only solution is to reformat the hard
- disc and restore the last backup. J.R.McLachlan, Hertford.
- 5.5
- Yes, there does appear to be a problem here. The same thing happened to
- us. In theory, the idea is that Drive_C is a filetype that is not
- deleteable. The trouble is that on the A5000, it seems to get confused
- and half delete it, leaving a blank entry in the file table (seen as a
- blank line in the filer window if you use “full info”). The answer is to
- change the filetype to, say, FFF with
- 5.5
- *SETTYPE $.<pathname>.Drive_C FFF
- 5.5
- before you try to delete it. Ed.
- 5.5
- • BBC Tracker Ball − In December’s Archive, Paul asked for a wiring
- diagram to convert a BBC tracker ball to an Archimedes one. I have
- converted an old Marconi tracker ball for use on the Archimedes using
- the following diagram.
- 5.5
- The nine wires come out of the bottom of the tracker ball socket as I
- have drawn it. Socket 1 is marked, or it is on mine.
- 5.5
- The connections are as follows...
- 5.5
- 9-pin Trackerball
- 5.5
- mini DIN Socket
- 5.5
- 1 3 yellow
- 5.5
- 2 6 black
- 5.5
- 3 7 brown
- 5.5
- 4 9 grey
- 5.5
- 5 2 orange
- 5.5
- 6 1 red
- 5.5
- 7 4 green
- 5.5
- 8 8 white
- 5.5
- 9 5 blue
- 5.5
- The colours are the colours on mine. They may differ between various
- tracker balls. A mark 1 Archimedes mouse lead will also fit this
- particular tracker ball but two leads need swapping round.
- 5.5
- Connectors 6 and 7, in my case red and brown, need to be changed over.
- This can be accomplished with a needle by gently lifting the black
- plastic clip above the connector with the needle whilst pulling gently
- on the wire to be removed.
- 5.5
- December’s article was, I think, for a mark 1 AMX mouse. I have a later
- AMX mouse which is the same design as the early Archimedes mouse and the
- lead is a straight swap.
- 5.5
- Dave Morrell, Middlesbrough
- 5.5
- • Elite Cheat − Here is program that will create a commander file for
- use with Elite. It gives you the most needed items to get around a
- little better than before, especially the docking computer, (most
- welcome). When you have successfully loaded it in, use galaxy map to see
- where to go, a little bonus is waiting: Front beam laser, rear beam
- laser, large cargo bay (35 tons), docking computer, E.C.M. system, four
- missiles.
- 5.5
- REM>:0.$.Elite_com
- 5.5
- REM Program by Scott Edwards
- 5.5
- REM 3-1-92
- 5.5
- REM It is important that you have
- 5.5
- REM the correct checksums on the
- 5.5
- REM right line, the program will
- 5.5
- REM inform you if you have a wrong line.
- 5.5
- MODE0:OFF
- 5.5
- DIM store% &1000
- 5.5
- checkcode%=38901:code$=“”
- 5.5
- line%=390:inc%=0
- 5.5
- FOR l%=0 TO 17
- 5.5
- FOR blk%=0 TO 15
- 5.5
- READ code$
- 5.5
- dat%=EVAL(“&”+code$)
- 5.5
- checksum%=checksum%+dat%
- 5.5
- ?(store%+inc%)=dat%
- 5.5
- PRINT dat%,~dat%
- 5.5
- inc%+=1
- 5.5
- NEXT
- 5.5
- READ checkcode%
- 5.5
- IF checksum%<>checkcode% THEN
- 5.5
- PRINT “You have a data byte incorrect at ”;line%
- 5.5
- STOP
- 5.5
- ENDIF
- 5.5
- line%+=10:finalcheck%=checksum%
- 5.5
- checksum%=0
- 5.5
- NEXT
- 5.5
- IF finalcheck%=checkcode% THEN
- 5.5
- PRINT“You have a correct file for saving”
- 5.5
- REPEAT
- 5.5
- INPUT“Enter the commander name for your file ”;A$
- 5.5
- UNTIL A$<>“”
- 5.5
- SYS“OS_File”,10,A$,&C87,,store%, store%+&11C
- 5.5
- ENDIF
- 5.5
- PRINT“Program is Finished,now run ELITE and use your new commander”
- 5.5
- END
- 5.5
- :
- 5.5
- REM Commander file for ELITE
- 5.5
- :
- 5.5
- DATA 16,B5,DC,72,DF,DD,20,C9,F2,3C, 54, EB,32,6F,EF,09,2244
- 5.5
- DATA E5,F9,61,E3,31,12,B8,70,85,F3, FE,A9,EB,11,02,DD,2439
- 5.5
- DATA 31,43,F2,80,D5,F6,81,FA,70,92, 9A, 72,B9,EB,FC,B9,2707
- 5.5
- DATA C9,B1,42,CE,85,DD,F6,7F,5D,00, D2,9A,92,D2,6F,FC,2553
- 5.5
- DATA B9,2F,F9,62,CF,B5,62,B8,7B,5E, 98,7E,AF,68,DC,AA,2413
- 5.5
- DATA DD,39,30,CD,40,D6,B5,EF,53,70, 9E,91,E9,99,EC,DB,2568
- 5.5
- DATA F1,2C,B1,50,C1,F5,4D,F7,EE,72, 97,52,A1,59,FC,A7,2558
- 5.5
- DATA FD,78,B2,CD,22,CA,AD,FF,54,7F, 3D,52,67,0A,66,D7,2204
- 5.5
- DATA F8,23,39,20,A2,B4,86,B4,6C,7D, 0B,1D,09,4A,D3,44,1663
- 5.5
- DATA D3,37,3F,07,0F,06,A6,63,23,E3, 1D,18,84,80,84,D4,1541
- 5.5
- DATA AA,8A,6B,10,8D,3B,39,43,EB,56, C6,B6,81,48,9F,1E,1846
- 5.5
- DATA 9A,77,2C,64,DC,BA,A5,49,10,CE, BD,17,33,EF,5E,D4,2091
- 5.5
- DATA A5,01,E8,E0,8D,12,71,30,6B,53, F9,F5,E9,47,02,B2,2110
- 5.5
- DATA 91,37,22,7D,F1,F6,A4,7A,DC,C2, 9C,8A,B5,FE,7C,CB,2602
- 5.5
- DATA 38,E2,DA,CF,49,E0,80,BF,CF,20, 6A,6E,E7,24,69,39,2207
- 5.5
- DATA 7E,74,89,36,A6,69,0B,36,B7,A9, 33,46,99,DD,35,07,1676
- 5.5
- DATA 34,D0,D6,93,1D,CF,F0,9B,03,0F, 61,EC,D6,13,E8,71,2181
- 5.5
- DATA 48,83,01,29,F7,5A,82,75,32,A8, BA,41,00,00,00,00,1298
- 5.5
- S Edwards, Stourbridge
- 5.5
- • First Word Plus 2 − In Archive 3.12 someone was bemoaning the lack of
- a key that would toggle insert mode on and off. In fact the <insert> key
- itself will do just that.
- 5.5
- Robert Fuller, Basingstoke.
- 5.5
- • Lemmings Passwords − For all you bald headed insomniacs....
- 5.5
- Taxing Level
- 5.5
- 02 Justforyou 03 Runandflee 04
- Doortodoor
- 5.5
- 05 Stillalive 06 Fixedmyfix 07
- Anurebevan
- 5.5
- 08 Helpmemate 09 Drinknwine 10
- Tenpercent
- 5.5
- 11 Stickuptwo 12 DiginDelve 13
- Hisbadluck
- 5.5
- 14 Teensforth 15 Teensfifth 16
- Notsosweet
- 5.5
- 17 Driveukcar 18 Votesforme 19
- Tenstonine
- 5.5
- 20 Doublesten 21 Lockandkey 22
- Twoelevens
- 5.5
- 23 Justforme 24 Lemmingmore 25
- Jiveanjive
- 5.5
- 26 Lemsinafix 27 Lemsheavon 28
- Gardengate
- 5.5
- 29 Startowine 30 Fivexsixis
- 5.5
- Mayhem Level
- 5.5
- 02 Nearlygone 03 Spendspree 04
- Onthefloor
- 5.5
- 05 Uncleclive 06 Clogclicks 07
- Difference
- 5.5
- 08 Waitanwait 09 Eatanddine 10
- Tentontess
- 5.5
- 11 Binisthree 12 Twotimesix 13
- Returntome
- 5.5
- 14 Twicelucky 15 Nineandsix 16
- Charitynum
- 5.5
- 17 Stillyoung 18 Comesofage 19
- Olderstill
- 5.5
- 20 Numbtwenty 21 Olderlemms 22
- Lemminduck
- 5.5
- 23 Soonbefree 24 Lemmsstore 25
- Lemmsdrive
- 5.5
- 26 Yourinafix 27 Lemtodevon 28Twostoplay
- 5.5
- 29 Oneafterme 30 Lemmgfinal
- 5.5
- Robin Jefferies, West Sussex.
- 5.5
- • Improving Logistix (v0.01) RISC-OS compatibility − As anyone who has a
- copy of Logistix will be aware, the RISC-OS support files to “upgrade”
- the package to run from the desktop do nothing except allow the
- application to be launched from the desktop! (I do not know if there was
- ever a subsequent release of Logistix since v0.01 − I assume not, as I
- was a registered owner and was never informed of any update.)
- 5.5
- In the case of old programs upgraded through the support disk, it’s
- likely that some of the software houses did not have any real experience
- of RISC-OS before the deadline date for the disk, so they may be excused
- for the minimal level of compliance. (Acorn could not be considered to
- have had any such excuse, but Logistix wasn’t actually written by them,
- they only marketed it for Grafox.)
- 5.5
- The directory structure of the “upgraded” !Logistix was rather messy,
- and all pathnames were specific to the directory structure, therefore
- not transportable from drive 0 and the $ directory. This makes it
- impossible to install on a hard disk without some editing. The major
- annoyance in using the application is that clicking on Logistix data
- files does nothing except give an error message! Files can only be
- loaded by first loading Logistix, then keyboarding through the menu
- system.
- 5.5
- The application directory can be arranged far better for RISC-OS by the
- movement of a few files, and a little editing with !Edit. Dealing with
- the directory structure first...
- 5.5
- All that the user wants to see of Logistix is the !Logistix application
- icon which can be double clicked on to start it. Your !System directory
- should contain a directory called Modules which contains the latest
- version of the FPE, Clib, Colours etc. As upgraded after using the
- support disk, a Logistix floppy disk contains the following directories:
- 5.5
- !System − A system folder which still requires updating with the RISC-OS
- extras disk for the newer versions of Clib etc. (The latest Floating
- Point Emulator (2.80) should also be placed in the Modules directory
- inside this.)
- 5.5
- !Logistix − The RISC-OS startup directory containing the !Boot,!Run and
- !Sprites files.
- 5.5
- Logistix − The actual Logistix program files and a (now outdated)
- Floating Point Emulator.
- 5.5
- MAKE A BACKUP COPY OF YOUR DISK then, using the backup copy...
- 5.5
- Move the Logistix directory into the !Logistix directory.
- 5.5
- Copy the latest FPEmulator you have into the !System.Modules directory.
- 5.5
- (You may then delete the copy in the Logistix directory.)
- 5.5
- Using !Edit, edit the !Logistix.!Boot file to contain the following
- lines:
- 5.5
- | !Boot for !Logistix version 0.01
- 5.5
- | Updated to allow autoload
- 5.5
- | (This is an OBEY file)
- 5.5
- Set Logi$Dir <Obey$Dir>
- 5.5
- IconSprites <Logi$Dir>.!Sprites
- 5.5
- Set File$Type_DFF Logistix
- 5.5
- Set Alias$@RunType_DFF Obey <Logi$Dir>.InitFile %%*0
- 5.5
- Edit the !Run file so that it becomes:
- 5.5
- | !Run for !Logistix version 0.01
- 5.5
- | with better RISC-OS compatability
- 5.5
- | (This is an OBEY file)
- 5.5
- IconSprites <Logi$Dir>.!Sprites
- 5.5
- WimpSlot -min 500k
- 5.5
- RMEnsure FPEmulator RMLoad <System$Path>Modules.FPEmulator
- 5.5
- Dir <Logi$Dir>.Logistix
- 5.5
- LGX
- 5.5
- The use of “<System$Path>Modules.” to reach the FPEmulator and setting
- up the system variable <Logi$Dir> allow proper transportability of the
- application, and it can now quite happily be installed anywhere in the
- directory structure on a hard disk. Clicking on a data file causes RISC-
- OS to check if a command has been matched to that file type. The system
- variable Alias$@RunType _xxx has to be set up for files of the type in
- question. If it has not been set up then you will get the error message
- “No run action specified for this file type”. This is exactly what
- happens with Logistix and similar applications written before (and even
- since!) RISC-OS made its appearance. The addition of the line Set
- Alias$@RunType_ DFF Obey <Logi$Dir>.InitFile %%*0 in the !Boot file
- corrects the original omission, along with the following Obey file.
- 5.5
- The file described here can be used with most applications which require
- keyboard input to load files, the exceptions being those which clear the
- keyboard buffer on start up. In principle, the method is simple. An Exec
- file is used containing the commands or keystrokes to be executed as
- though they had been entered at the keyboard. Due to the fact that only
- Obey files can process the Obey$Dir system variable, it could get a
- little bit confusing.
- 5.5
- One way around this is from an Obey file:
- 5.5
- 1. Collect the startup pathname from RISC-OS and put it in a system
- variable.
- 5.5
- 2. Using an Obey file, create an Exec file (by using Spool and Echo)
- containing all the commands which require to be carried out to start the
- application and set it up for a load operation.
- 5.5
- 3. Echo the system variable containing the full pathname into the Exec
- file.
- 5.5
- 4. Exec the file which has just been created.
- 5.5
- There is one small problem. When trying to write to the FIRST file being
- created by a *Spool operation, extraneous data flows into it before the
- data! A dummy file is spooled first to get rid of this before the real
- file is created.
- 5.5
- Using !Edit, create a new Obey file as follows, (You may miss out the
- comment lines, but please leave in the fact that it is public domain and
- attributed to me.)
- 5.5
- | “InitFile” − Public Domain by
- 5.5
- | D.Potter 26/6/90
- 5.5
- | Allows keyboard emulated loading
- 5.5
- | by double-clicking on a data file
- 5.5
- | in the RISC-OS desktop.
- 5.5
- | Intended in this version for
- 5.5
- | Logistix, but the principal will
- 5.5
- | work for other programs which do
- 5.5
- | not clear the keyboard buffer at
- 5.5
- | startup.
- 5.5
- | This is an Obey File. (Exec files
- 5.5
- | do not allow passing of system
- 5.5
- | parameters.) To pass actual
- 5.5
- | commands to Logistix, (or any
- 5.5
- | similar application), an Exec file
- 5.5
- | must be used.
- 5.5
- | The Exec file is built by this
- 5.5
- | file, including the full path for
- 5.5
- | the startup file that was clicked
- 5.5
- | on.
- 5.5
- | The !Boot file for app. must be an
- 5.5
- | Obey file containing the commands
- 5.5
- | Set Logi$Dir <Obey$Dir>
- 5.5
- | Set Alias$@RunType_xxx Obey <Logi$Dir>.InitFile %%*0
- 5.5
- | (As well as any other commands
- 5.5
- | already there)
- 5.5
- | Where xxx is the filetype for the
- 5.5
- | data file (DFF for Logistix).
- 5.5
- | Logi$Dir will be the directory
- 5.5
- | where the application resides, and
- 5.5
- | is automatically set up when the
- 5.5
- | application’s !Boot is first seen.
- 5.5
- | Note : the | characters at the
- 5.5
- | start of the above lines should
- 5.5
- | NOT be in the !Boot file!
- 5.5
- |
- 5.5
- | Put the pathname information in
- 5.5
- | temporary system variable Lload$
- 5.5
- Set Lload$ %*0
- 5.5
- | Clear extraneous data which
- 5.5
- | appears when a file is written to
- 5.5
- | at this stage by dummy spooling.
- 5.5
- | This data is not needed here any
- 5.5
- | more!
- 5.5
- Spool <Logi$Dir>.!LoadFile
- 5.5
- Echo <Lload$>
- 5.5
- spool
- 5.5
- | Now create the actual Exec file
- 5.5
- | which will run LGX and issue the
- 5.5
- | commands.
- 5.5
- Spool <Logi$Dir>.!LoadFile
- 5.5
- Echo || !LoadFile − Transient program built by InitFile
- 5.5
- (PD) by D.Potter 1990
- 5.5
- Echo *Run <Logi$Dir>.!Run
- 5.5
- |
- 5.5
- | Send the Logistix load sequence −
- 5.5
- | Note : NO SPACES in the sequence!
- 5.5
- | /L = load, L= Logistix data file,
- 5.5
- | <Lload$>= Full filename,
- 5.5
- | A= All to be loaded (You might
- 5.5
- | want to use a different load
- 5.5
- | sequence)
- 5.5
- | (Where a return is required such
- 5.5
- | as after the filename here,
- 5.5
- | simply start a new Echo statement
- 5.5
- | for the next command.)
- 5.5
- |
- 5.5
- Echo /LL<Lload$>
- 5.5
- Echo A
- 5.5
- |
- 5.5
- | Close the file
- 5.5
- Spool
- 5.5
- |
- 5.5
- | Set its file type
- 5.5
- SetType <Logi$Dir>.!LoadFile Command
- 5.5
- |
- 5.5
- | Lose the temporary system variable
- 5.5
- UnSet Lload$
- 5.5
- |
- 5.5
- | And run the file just created!
- 5.5
- Exec <Logi$Dir>.!LoadFile
- 5.5
- Save the above file as InitFile in the !Logistix directory.
- 5.5
- Now click on the !Boot file in the !Logistix directory to set the system
- variables. (You won’t always have to do this, as the !Boot file will be
- run the first time you open the directory containing !Logistix. You only
- need to do it at this time because you have been messing about with the
- files, and the !Boot file may be different now than when it was last
- run.) Clicking on any Logistix data file will now load Logistix and the
- data file ready for use. You will still have to set up any default
- prefixes etc.
- 5.5
- It is not possible to do this automatically with a simple file such as
- the above, because the full pathname would require to be split up to
- provide the path to your file directory minus the filename. i.e. you
- would require string handling facilities such as in Basic.
- 5.5
- Note: The Logistix application itself still sets the CSD to the Logistix
- directory within the !Logistix application directory. Implementing a
- fully RISC-OS compatible version would require rewriting of the actual
- coded LGX file, which is not possible without both the source code file
- and the full approval of both Acorn and Grafox.
- 5.5
- Other applications requiring a parameter block in memory − Other
- programs (in Basic) written before RISC-OS, which will autoload a data
- file at startup if a parameter block is set up in memory, could be made
- to auto load using a version of the following routine. Again, this
- builds an exec file which is run in Basic, using simple string handling
- to split off the filename from the full pathname.
- 5.5
- This example file was built to implement auto loading under RISC-OS on
- an old BBC program which was written for DFS, and without re-writing
- could not handle full pathnames, therefore it includes a line to set the
- current directory to the application directory.
- 5.5
- Note: This particular version works due to Basic being selected during
- the execution of the Exec file and the memory accessible to both the
- file and the program is that assigned by the selection of Basic. Any
- other programs (e.g. integrated packages) which are to use the shared
- parameter block must (obviously) use the same memory, so must not move
- out of Basic (return to the desktop) in between the programs, but simply
- chain each other.
- 5.5
- This actual file will be irrelevant to most users, but it does show a
- method of getting around the conversion of system variables to actual
- data therefore easing the amount of work involved in conversion of BBC B
- and Master programs to Archimedes. I know that re-writing the appli
- cations might be more sensible, but this is aimed at people who know how
- an application works, but didn’t write it in the first place!
- 5.5
- | “Autoload”
- 5.5
- | A Customised version of “InitFile”
- 5.5
- | − Public Domain by D.Potter
- 5.5
- | 7/7/90
- 5.5
- | —— Information ——-
- 5.5
- | Allows parameter block loading by
- 5.5
- | double-clicking on a data file
- 5.5
- | in the RISC-OS desktop.
- 5.5
- | Intended in this version for the
- 5.5
- | upgrade of an old BBC/Master
- 5.5
- | program called Datbase, but the
- 5.5
- | principal should work for other
- 5.5
- | Basic programs which when started
- 5.5
- | up check a parameter block in
- 5.5
- | memory, and if found to be valid,
- 5.5
- | will load the file referred to in
- 5.5
- | the block.
- 5.5
- | eg. Old “Integrated” suites of
- 5.5
- | programs which allow files to be
- 5.5
- | left as active or current for each
- 5.5
- | program in the suite.
- 5.5
- |
- 5.5
- | This is an Obey File.
- 5.5
- | An Exec file is built by this file
- 5.5
- | including the filename for the
- 5.5
- | startup file that was double
- 5.5
- | clicked on.
- 5.5
- | The !Boot file for app. must be an
- 5.5
- | Obey file containing the commands
- 5.5
- | Set DatBa$Dir <Obey$Dir>
- 5.5
- | Set Alias$@RunType_xxx Obey <DatBa$Dir>.AutoLoad %%*0
- 5.5
- | (As well as any other commands
- 5.5
- | already there)
- 5.5
- | Where xxx is the filetype for the
- 5.5
- | data file. (DatBa$Dir will be set
- 5.5
- | to the directory where the program
- 5.5
- | & this file reside when the !Boot
- 5.5
- | file is run)
- 5.5
- |
- 5.5
- | Put the full pathname information
- 5.5
- | in system variable DBload$
- 5.5
- Set DBload$ %*0
- 5.5
- | Clear extraneous data which
- 5.5
- | appears when a file is written to
- 5.5
- | at this stage by dummy spooling.
- 5.5
- | This data is not needed here
- 5.5
- | anymore!
- 5.5
- Spool <DatBa$Dir>.!LoadFile
- 5.5
- Echo <DBload$>
- 5.5
- spool
- 5.5
- |
- 5.5
- | Now create the actual Exec file
- 5.5
- | which will run the program and
- 5.5
- | load file.
- 5.5
- Spool <DatBa$Dir>.!LoadFile
- 5.5
- Echo || !LoadFile − Transient program built by AutoLoad
- 5.5
- (PD) by D.Potter 1990
- 5.5
- Echo *Basic
- 5.5
- Echo REM this particular application requires the CSD to be it -
- 5.5
- Echo *Dir <DatBa$Dir>
- 5.5
- Echo REM The startup parameter block for this application
- 5.5
- is at &F000, with
- 5.5
- Echo REM the filename held at &F100, any conditions for
- 5.5
- printing at &F110,
- 5.5
- Echo REM the record number to display at start up held in R%,
- 5.5
- Echo REM and HIMEM held in H%
- 5.5
- Echo HIMEM=&F000
- 5.5
- Echo H%=&F000
- 5.5
- | Echoing a system variable
- 5.5
- | causes it to be converted to
- 5.5
- | the real data.
- 5.5
- Echo F$=“<DBload$>”
- 5.5
- Echo REM Split off the actual filename itself (This
- 5.5
- particular example is
- 5.5
- Echo REM for conversion of a BBC B/
- 5.5
- Master program which
- 5.5
- has restricted
- 5.5
- Echo REM filename length, and therefore can’t handle
- 5.5
- full pathnames)
- 5.5
- Echo REPEAT:F$=MID$(F$,INSTR(F$,“.”)+1):UNTIL INSTR(F$,“.”)=0
- 5.5
- Echo $&F100=F$ : $&F110=“”:R%=1
- 5.5
- Echo MO.12
- 5.5
- Echo CHAIN“DATBASE”
- 5.5
- |
- 5.5
- | Where a return is required after a
- 5.5
- | command such as L for load, simply
- 5.5
- | start a new Echo statement for the
- 5.5
- | next command − a return will be
- 5.5
- | put in.
- 5.5
- |
- 5.5
- | Close the file
- 5.5
- Spool
- 5.5
- |
- 5.5
- | Set its file type
- 5.5
- SetType <DatBa$Dir>.!LoadFile Command
- 5.5
- |
- 5.5
- | And do it!
- 5.5
- Exec <DatBa$Dir>.!LoadFile
- 5.5
- Douglas Potter, Glasgow
- 5.5
- • Oak SCSI on A5000 − Using the ‘free’ menu option on a SCSI disc on the
- iconbar doesn’t make use of the new Free module in the RISC-OS 3 ROM. To
- correct this, include the following line in your hard disc boot file :
- 5.5
- Set Alias$Free ShowFree -FS scsi %0
- 5.5
- That’s all there is to it. Now, whenever you select ‘free’ from the SCSI
- menu, a Free window pops up. The ‘%0’ picks up the device (disc drive)
- name. Should you then subsequently wish to use Free from the command
- line, use :
- 5.5
- %Free [<disc spec>]
- 5.5
- Typing ShowFree at the command line (with no parameters) reports the
- command syntax.
- 5.5
- David Lenthall, London
- 5.5
- • Refilling ink cartridges − We have, in past issues, published comments
- about refilling inkjet cartridges with various types of ink. Tord
- Eriksson sent in another such comment a while ago but I didn’t publish
- it. He now writes....
- 5.5
- Remember my recommending using water or fountain pen ink to keep your
- printer going when your ink supply is gone? You didn’t publish it
- (sensibly enough!) and I ran into deep trouble with it. I thought the
- printhead was a goner (and messed it up further...), as the printer
- didn’t work properly. After buying a new £100 head, with no improvement,
- I found out that the reason you shouldn’t refill the cartridges is that
- air easily leaks into the paint container if you disconnect it many
- times (as when injecting ink) because the membrane gets worn. This means
- that suction isn’t up to specification and you get uneven paint
- delivery.
- 5.5
- You may publish this as a warning − water does not harm a Canon BJ-what-
- ever printer − but the side-effects can be very troublesome! I could
- have spent the £100 on something more sensible!!! Tord Eriksson,
- Sweden A
- 5.5
- Impression Hints & Tips
- 5.5
- • Function key changes (cont’d) − In addition to Michael Ben-Gershon’s
- excellent hint in Archive 5.2, p.12: Why not go the whole way and put
- all those styles (like those fonts you use regularly to enhance your
- texts) into your Impression default document, after you have assigned a
- function key to each of them?
- 5.5
- There are quite a lot of possibilities; in addition to those fields on
- the function key strip that are quite empty, you can remove the default
- styles you may not need (like hanging indent) and if there are some of
- those ten scales offered which you never use, you can simply take over
- those keys for your own styles.
- 5.5
- You will find that the editable field which allows you to define a
- keyboard short cut is slightly unusual: It accepts only certain entries
- (function keys, <Shift>, <Return>,..), and it is not necessary to delete
- the existing content with <Ctrl-U> − just click in the box, enter the
- new combination and click on OK. (Don’t press <Return>, because that
- simply means that the short cut for your style is the Return key!)
- 5.5
- Jochen Konietzko, Köln, Germany
- 5.5
- • Sprite files in Impression − Kevin Beales told us (Archive 5.4 p5)
- about Impression’s ability to scale pictures in Draw format. In this
- context, he forgot to mention something even more remarkable: Impression
- can also scale sprites! This works in exactly the same way as he
- described.
- 5.5
- Of course, due to the well known problems of jagged edges/loss of
- detail, you shouldn’t scale up or down too much; but if you have a
- sprite that is just slightly too big or too small for its intended
- place, then this feature of Impression is certainly extremely useful!
- 5.5
- Jochen Konietzko, Köln, Germany
- 5.5
- • Illustrated Impression documents − I often include sprite and draw
- files in my Impression documents (for test papers and the like).
- 5.5
- One minor problem is that one can’t really edit those graphic frames in
- an Impression document. Therefore, to have the corresponding files
- always on hand, I save them into the document’s directory (after opening
- a window on this directory by <shift>-double clicking).
- 5.5
- This is one more reason for buying Compression: A typical sketch I make
- with DrawPlus is reduced from about 6k to about 2 kbytes. A screen shot
- made of an oscilloscope application I use takes up 100 kbytes; Compres
- sion reduces this to just about 5k bytes (!). This means that even
- pictures that appear in several documents don’t clog up the hard disk
- too much, if you always save them together with the documents they
- appear in.
- 5.5
- (Surely, though, the Draw files are already in the Impression document
- directory? Why not edit them directly from there? Two drawbacks, I
- suppose... you don’t know which file is which because they have names
- like Story2 and Story4 (but you could identify them if you have full
- info set in the filer window because of their size) and secondly the
- changes to the Drawfiles are only displayed then next time you load the
- Impression document. Ed.)
- 5.5
- (By the way: Can anyone tell me whether this hint will become obsolete
- once Computer Concepts’ much vaunted Impulse II will be available, that
- is, whether you will then be able to open a graphic file saved somewhere
- by clicking on a graphic frame in an Impression document?)
- 5.5
- Jochen Konietzko, Köln, Germany
- 5.5
- • Tiny left hand margin − I often wondered why the default document on
- the Impression disc has a left hand margin set on the base style of a
- couple of millimetres. Because of my sense of symmetry, I reduced that
- to zero as soon as I started using Impression. Surely, if you create a
- new master page with, say, 10cm margins, you don’t want the lefthand
- margin to be 10.2cm?
- 5.5
- Suddenly it dawned on me... yes, I know I’m slow... the reason for the
- small lefthand margin is to make it easier to position the cursor to the
- left of the first character on a line. If, as I do, you have zero margin
- in the base style, you’ve got to judge the mouse cursor fairly accu
- rately otherwise it goes onto the paper margin and turns into a hand.
- Well, yer pays yer money... but I think I’ll stay as I am. I have too
- many documents to change them all. Ed.
- 5.5
- • Impression speed users’ tips − I find that if you can get into the
- habit of using <adjust> reverse scrolling, it really does save time,
- especially when I am laying out the magazine and the screen is cluttered
- with windows. Just press <select> to scroll down and switch quickly to
- <adjust> to go back up again without having to move the mouse and locate
- the other end of the scroll bar − which could be under another window
- anyway.
- 5.5
- Also, <adjust> can be extremely useful, again with a cluttered screen,
- for moving windows whilst keeping them where they are relative to the
- other documents. It takes practice, but it speeds things up in the long
- run. Ed. A
- 5.5
-
- Hints and Tips
- 5.6
- • Alt key problems − (I think I’ll have to write this in six-foot high
- letters. We’ve said it several times, but people keep missing out on
- it.) If your <alt>-keypad numbers don’t give the special characters you
- think they should, type *UNPLUG and you’ll probably find that someone or
- something has unplugged the InternationalKeyboard module. If so, do an
- RMREINIT InternationalKeyboard and all will be well. Ed.
- 5.6
- • Copy key use − I had not realised until recently that the copy key has
- the function of “delete right” (as it does in Impression) in most RISC-
- OS applications.
- 5.6
- • Floppy backup – (I know it’s obvious but...) On a single floppy disc
- machine, if you want to backup up floppy discs in one chunk, i.e.
- instead of having to take the discs in and out twice, call up the task
- manager and increase the “Next” memory allocation to 800k or more. If
- you don’t, it loads 640k into memory and copies that and then copies the
- last 160k separately.
- 5.6
- • External floppy drives on A5000 − There seems to be some concern and
- confusion over connecting extra floppy drives to the A5000 and over the
- fact that ADFS treats the drives in a different way from previous
- Archimedes computers. Let me try to explain.
- 5.6
- The A5000 motherboard can access two internal floppy drives and two
- external drives. However, many modern 3½“ drives can only be configured
- as drive 0 or 1. Thus to allow a full complement of four drives, drive
- selections 2 and 3 are transformed into 0 and 1 but on a separate ribbon
- cable (as in a PC).
- 5.6
- Here is the problem: If one internal drive is fitted (physical drive 0/
- 1) and an external drive is added (addressed as drive 3), then to access
- the external drive you must ‘*configure floppies 4’, with the result
- that you have two useless floppy drive icons!
- 5.6
- The solution that Acorn has is: Logical to physical drive mapping,
- whereby ADFS can be configured with two floppies but would access
- physical drive 3 when requested to read from logical drive 1. In order
- to achieve this, ADFS must determine which physical drives are present.
- This is achieved after reset (or rmreinit) by performing a ‘restore’
- operation on each physical drive and then testing for a track 0
- indication from a functional drive. The following table depicts a
- typical example:
- 5.6
- Physical Drive Present ADFS drive Nº
- 5.6
- 0 − −
- 5.6
- 1 Y :0
- 5.6
- 2 − −
- 5.6
- 3 Y :1
- 5.6
- This has a benefit for production by permitting the single internal
- drive to be physical drive 1, which is the default for the PC world, and
- hence not requiring link changes. Note that the 82C710 controller fitted
- to the A5000 has 48mA sink capability and therefore does not require a
- buffer board to operate with 5¼“ drives fitted with 150R pullup
- resistors.
- 5.6
- Drive mapping was the main reason for accessing the floppy after a
- reset, but once this approach was adopted, several other features were
- possible.
- 5.6
- (1) 40 track drive detection. MultiFS allows 40 track discs to be read
- in 80 track drives but, if a real 40 track drive is fitted, the double
- stepping mode is inhibited. This test is performed on all physical
- drives detected and works by first seeking to track 44 (a 40 track drive
- will block at track 40, 41 or 42) and then seeking to track 2 (42 step
- pulses). A 40 track drive will indicate track 0 at completion. Thus, if
- you have a 40/80 switchable drive, you should type ‘*rmreinit ADFS’
- after changing mode to ensure ADFS knows about the change.
- 5.6
- (2) During shipping, some floppy drives can have their heads shocked
- beyond track 0 (negative track number). The 40 track drive detection
- scheme ensures these drives will be recalibrated correctly.
- 5.6
- (3) If you ‘*configure’ too many floppies, ADFS will only install the
- number detected. Conversely if you ‘*configure’ too few drives, ADFS
- will not use the excess physical drives (the physically greater drive
- numbers will be ignored). Lastly, if the configured floppies is 0 then
- ADFS will not attempt to select any floppies.
- 5.6
- If you have configured the correct number of floppies, the extra time
- spent ‘booting’ should normally be less than 250ms, that is 80 x 3ms
- step pulses to detect a 40 track drive plus the time to initially
- restore the head. Note that a configured 12ms step time is now trans
- lated on an A5000 to 25ms to allow for very old/slow 40 track 5¼“ drives
- sometimes found on prehistoric Beebs.
- 5.6
- I think this should explain the different behaviour of ADFS on A5000.
- (Could this also explain why the A5000 floppies seem slow compared to my
- A540? Ed) However, if you are trying to connect 5¼“ drives to the A5000,
- one other factor needs to be taken into account. Unless they are
- modified, 5¼” drives cannot be mixed with 3½“ drives on the same ribbon
- cable because of differences in pin out of the ‘disc changed’ and
- ‘ready’ signals. To work correctly on the internal drive connector, pin
- 34 must present the ‘disc changed’ signal (or be disabled) and pin 2
- carries the density select from the FDC.
- 5.6
- Therefore connect the 5¼“ drive on the external (middle) socket and make
- the following link changes to the A5000:
- 5.6
- LK18 (north and west of socket) in the West position (viewed from front
- of m/c); LK19 (north and east of socket) should be removed (park the
- jumper on the centre pin only); LK21 (south and west of socket) should
- be removed (park the jumper on either pin).
- 5.6
- These links only affect the external socket. To give the full informa
- tion on it.
- 5.6
- LK18 selects logic hi (west) or logic lo (east) for the high density
- signal from the FDC
- 5.6
- LK19 selects ‘density’ to drive (west) or ‘disk changed’ from drive
- (east) or neither (removed) on pin 2 of drive interface
- 5.6
- LK21 enables (jumper fitted) the disc changed signal from pin 34 of the
- drive interface.
- 5.6
- Your drive should then be configured as drive 0 or 1, remembering to
- *configure floppies 2
- 5.6
- The above information was culled from a bulletin board by Brian Debenham
- of Chelmsford. One of our other subscribers got some help from Steve
- Picton at IFEL who referred him to pages 1-23 and 1-26 in the A5000
- Technical Reference Manual and included a useful table for link changes
- as follows:
- 5.6
- Drive type link 18 link 19
- link 21
- 5.6
- PC-AT 1M / 2M 1-2 2-3 1-2
- 5.6
- PS/2 1M / 2M 2-3 2-3 1-2
- 5.6
- older 1M types * 1-2 2-
- 3
- 5.6
- most 5¼ drives * don’t fit 2-
- 3
- 5.6
- * = either position or don’t fit at all
- 5.6
- It’s difficult to get at these links, so a pair of long nosed pliers is
- extremely useful. Bob Potter, Bath.
- 5.6
- • Lemmings − Did you know that a ‘blocker’ can be released by hitting it
- in the right place with a ‘digger’ and also by burrowing very closely
- underneath with a ‘basher’?
- 5.6
- • MS-DOS users − Even in CGA emulation, the latest emulator screen
- updates can be very slow. However, some of the new utilities (like EDIT)
- have a ‘switch’ to allow faster CGA updates so...
- 5.6
- EDIT MYFILE.TXT /G
- 5.6
- will edit the file with quicker screen updates (/G means “switch G”). In
- true Archimedes style, HELP <command> now gives the syntax and meaning
- of commands (about time, too!). Paul Bamberger, Hinckley.
- 5.6
- • !MultiFS bug (with PCEmulator 1.70)? − Those of your readers using the
- latest version (1.70) of the PCEmulator on RISC-OS 2 may be interested
- in the following problem which I found recently. I have reported it to
- Acorn, but have not had response yet. I understand that users of RISC-OS
- 3 need not use !MultiFS with the PCEmulator because of their different
- disc handler, so they need not read further into this hint.
- 5.6
- Following the correspondence in Archive about how to shut down a hard
- disc reliably (See Archive 5.1 p26 ‘The Engineer Speaks’.) I now type
- *SHUTDOWN just before turning off the power on my A540. After loading
- !MultiFS on the icon bar, and then quitting it again, I found that when
- I typed *SHUTDOWN, sometimes it just hung, sometimes I got an error
- message, something like “Address exception at &01889 CE0”, and then I
- could do nothing until after resetting the Archimedes, (<ctrl-break>
- would not work). After the reset, *SHUTDOWN normally worked as usual,
- occasionally, I had to turn off the power to reset it.
- 5.6
- After a little research I found that when !MultiFS quits, it removes the
- MultiFS module, but leaves MultiFS in the list of filing systems held by
- ‘FileSwitch’. Thus when *SHUTDOWN is trying to shut down all filing
- systems, it cannot cope with MultiFS as the module is no longer loaded.
- 5.6
- You can check which filing systems are known to ‘FileSwitch’ with the
- following BASIC program:
- 5.6
- 10 REM >FScheck test which filing
- 5.6
- systems exist
- 5.6
- 20 PRINT“Number Name”
- 5.6
- 30 @%=6:DIM fsname% 20
- 5.6
- 40 FOR F%=3TO255
- 5.6
- 50 SYS “OS_FSControl”,33,F%,fsname% ,21
- 5.6
- 60 L%=−1:REPEAT:L%+=1
- 5.6
- 70 UNTIL fsname%?L%=0
- 5.6
- 80 IFL%>0 fsname%?L%=13:PRINTF%“ ” $fsname%
- 5.6
- 90 NEXT
- 5.6
- To make ‘FileSwitch’ forget about MultiFS use the program below:
- 5.6
- 10 REM >DelMultiFS delete multifs filing system
- 5.6
- 90 REM see whether MultiFS is still loaded, if not, exit
- 5.6
- 100 SYS “OS_FSControl”,13,“MultiFS” ,0 TO ,F%,T%
- 5.6
- 110 IF T%=0 END
- 5.6
- 120 REM next line removes MultiFS
- 5.6
- 130 SYS “OS_FSControl”,16,“MultiFS”
- 5.6
- 140 END
- 5.6
- While reporting this problem to Acorn, they gave me a very helpful
- statement of the essential differences between the various ways of
- closing down a hard disc system, which I feel sure they will not mind my
- passing on.
- 5.6
- *SHUTDOWN closes all open files on all filing systems, logs off all file
- servers, causes hard discs to be parked.
- 5.6
- *DISMOUNT closes all files, unsets directories and parks the given disk
- (The currently selected drive on the current filing system is assumed if
- this command is given without specifying the disc.)
- 5.6
- *BYE closes all the files, unsets directories and parks the hard discs
- on the currently selected filing system.
- 5.6
- So you see the engineer was quite right, they are different. It depends
- what your current disc is, and only the *SHUTDOWN parks the disks on ALL
- the filing systems. Kate Crennell, Didcot.
- 5.6
- • Mysterious error message from Hard Disc Companion II − In Archive Vol
- 5.4 page 3 you described the new version of the program from Risc
- Developments. I upgraded from my old version recently and found that the
- new version does not allow comments in the ‘Ignore’ part of the file
- used to specify which directories and files are not to be backed up. I
- found this a very useful feature of the previous version, and I should
- like any other users who regret its passing to join me in asking Risk
- Developments to put this feature back as soon as possible.
- 5.6
- This is mildly annoying, but I found a more serious problem. The first
- time I used the ‘Hard Disc Companion II’ it worked beautifully, but the
- second time, it would not load onto the icon bar, instead I got the
- usual ‘traffic sign’ warning window and a message “File not found at
- line 49”. Neither the !Boot nor the !Run files had 49 lines in them. The
- program is not written in Basic, so it has no line numbers. I eventually
- found that since making my first full backup and trying to do the next
- incremental backup, I had deleted one of the files which I had previ
- ously said I wanted to ‘ignore’ in the ‘Choices’ file. Luckily, it is
- possible to edit the ‘Choices’ file with !Edit, so I just took out that
- line. I have reported this error to RISC Developments and they said they
- hope to make the error message more informative and tell you the name of
- the file which is missing. Kate Crennell, Didcot.
- 5.6
- • Paper for inkjets − I have a Hewlett Packard Deskjet 500 inkjet
- printer. I have had great trouble finding good paper − the main problem
- seems to be how absorbent the paper is; too absorbent and you will get
- white patches in your black areas, but not absorbent and it will smudge
- across the paper! If you go into most paper suppliers or printers, they
- will be happy to give you various samples that you can try. Make sure
- when you test the paper that you include very small text, thin and thick
- straight lines at various angles, fine and thick curves, shading, large
- black areas and bit mapped graphics. I have ended up using “Mustang
- Copier − Long grain 80gsm” for my draft printing (as it is cheap − about
- 0·5 pence per sheet) and Croxley Script 100gsm for quality work (this
- works out at about 3 pence per sheet but is water marked and has a nice
- feel to it). There is probably better paper available − I have only
- tried about twenty types. Paul Bamberger, Hinckley.
- 5.6
- • Pandora’s Box problems? − There seems to be an incompatibility between
- Pandora’s Box and Acorn’s AKA16 MIDI card (v3.14). Therefore, to load
- the game, simply type: *RMKill Midi <return> before attempting to run
- it. Rob Brown, Surrey.
- 5.6
- • Psion Organiser and the Archimedes − The PD program !Download, written
- by Emmet Spier, works very well with the Psion Organiser. To upload from
- an Archimedes to an Organiser, I created an application called !Upload,
- consisting of a suitable sprite and a !Run file as follows:
- 5.6
- IconSprites <Obey$Dir>.!Sprites
- 5.6
- Filer_OpenDir serial:
- 5.6
- C. Parker, Hong Kong.
- 5.6
- • Second internal 3½“ drive on the A5000 − I have fitted a second 3½”
- drive internally on my A5000 with no problems at all.
- 5.6
- The 3½“ drive fitted to the A5000 is a Citizen model OSDA20C. These do
- not seem to be generally available in the UK. The Citizen OSDA39C is
- easy to get and the ONLY difference (according to my experience and
- Citizen UK) is that the drive light is a different colour. They are
- generally available for about £75 + VAT but I got mine for £35 + £10
- overnight delivery + VAT = £52.88 from:
- 5.6
- CD2000, PO Box 1061, London Road, Slough, Berks SL3 8RE (0753−553366)
- (fax 0753− 554661) who were super efficient and helpful.
- 5.6
- There is a power plug already inside the A5000, so all you need is a 9“
- drive cable. I have altered NO links or switches on the A5000. All I did
- was set the tiny slider switch on the drive (next to the socket for the
- data cable) to the opposite position on the drive already in the
- machine. (Actually, this wouldn’t make any difference, as explained in
- the section above about external floppies on the A5000. Ed)
- 5.6
- You need 4 off 18mm spacers and 4 off screws (6BA I think) to fit the
- drive to the bottom of the A5000 case. I used various spacers and nuts
- to make up the 18mm and the drive has worked faultlessly. With RISC-OS 3
- being so slow at any disc backing up or copying, the second drive is
- essential. Colin Thompson
- 5.6
- • Shrinking windows − A rare bug has just ‘bitten’ me while using
- Impression. It’s not a bug in Impression, in fact, but a bug in RISC-OS
- 2. I was trying to change the size of the window on a large Impression
- file by using the sizing icon in the bottom right-hand corner of the
- window. The window jumped to about an inch high and would not go any
- longer unless I clicked to open the window to full screen size − that
- worked fine but as soon as I touched the sizing icon, the window
- contracted! I tried various other Impression files but they were OK. I
- restarted Impression, I cut and pasted the text, I saved the text and
- created a new document but the window kept jumping back to this reduced
- size! A phone call to CC revealed the reason. In RISC-OS 2, if the
- window size is exactly 65,535 OS units in size, it gets confused and
- loses the top bit of the window size number and thinks it’s a somewhat
- shorter window. All I had to do was to create a new page in the document
- and all was well. Alternatively, I could have changed the magnification
- − even 1% change solves the problem. Presumably, the chances of it
- happening are small (1 in 65,535?) and it has to be a large document −
- mine was 28 pages displayed at 140% magnification. A
- 5.6
-
-
-
- • Virus Kit v1.17 − Some people have had a few problems running version
- 1.17 of the virus killer, which is supplied on Shareware 17 and on the
- Archive 5.5 program disc. Here are a few hints that might help you to
- solve them:
- 5.6
- (i) You should let your Archimedes see either a !System folder or !Scrap
- file before running the !Killer application.
- 5.6
- (ii) Some sticky backdrops clash with the !Killer application and so
- should not be used at the same time.
- 5.6
- (iii) If you have caught the module virus, it is possible for the
- VProtect module in the !Killer application to become infected and so
- prevent the program from being run.
- 5.6
- • Acorn Virus Kit (latest) − Acorn have decided to make the latest
- version of The Virus Kit (currently 1.26) available through Pineapple
- Software rather than Acorn Dealers. This will allow them to keep tighter
- control over the version being distributed and any updates. Contact
- Pineapple Software for availability though distribution isn’t due to
- start until May.
- 5.6
- • Wimp programming oddities? In the process of developing a wimp utility
- in 100% machine code, I’ve come across a few things that other program
- mers might like to look out for...
- 5.6
- Menus − You can click the mouse in a menu one pixel above the first menu
- item (and also one pixel below the last item). The result is that
- Wimp_Poll returns a menu tree of zero length to your program i.e. the
- first word is returned as −1. Once I had found this (it crashed my
- program completely on random mouse clicks!) I tried it out on all the
- programs I could find. The easiest test is to click the menu button and
- then the adjust button without moving the mouse. Most commercial
- programs weather it OK, just redrawing the menu. Some that don’t are
- Menon 1.86 (which gives a “bad string” error), Ian Copestake’s IDEFS
- (which comes up with “File ‘:4’ not found”), and the Cross-32 assembler
- (which corrupts its menu title to “Crosr 32”).
- 5.6
- Zooms − I’ve seen <adjust> reverse-scrolling mentioned several times,
- but this applies (or should apply, anyway!) to just about anything with
- arrow icons on it; notably the zoom-windows in Paint/Draw and all the
- nudge arrows in Impression.
- 5.6
- Variable Filetype Variables − Regarding David Lenthall’s article in
- Archive 5.5 p 63, I’m using a user file type and have found that the way
- round file type clashes is, in fact, already built into RISC-OS! You
- don’t need to create extra system variables to shift file type numbers
- about:
- 5.6
- SYS “OS_FSControl”,31, “FileTypeName” TO ,,FileTypeNumber%
- 5.6
- works equally well (now we just have to persuade everyone to do this
- rather than using absolute file types in their programs). Fred Williams,
- Cannock Wood A
- 5.6
-
-
-
- Impression Hints & Tips
- 5.6
- This month’s hints and tips have been submitted by the following people:
- Computer Concepts (CC), Richard Hallas (RH), Paul Beverley (PB), Patrick
- Dowling (PD), Rob Sherratt (RS) and Steve Kirkby (SK). Many thanks to
- all.
- 5.6
- • Hyphenation − If you want to be able to switch hyphenation on and off
- easily, create a new style with <ctrl-F5>, give it a name such as
- “hyphenated”, go down to the section where it deals with hyphenation,
- switch hyphenation ON, go to the bottom and select an unused key short-
- cut, say <ctrl-shift-F1> and save the new style. Now, to switch
- hyphenation on for a given paragraph, select the paragraph (using <ctrl-
- @> or quad-click with <select>) and press <ctrl-shift-F1>. Alterna
- tively, if you want hyphenation on for most of the document, edit the
- definition of the basestyle to have hyphenation ON and create a new
- style, in the same way, whose only attribute is that hyphenation is OFF.
- (As an aside, I have always found it difficult to find the line dealing
- with hyphenation in the edit style window but I now know why. If you
- click in the scroll bar three times, half of the word “hyphenation” is
- visible at the bottom of the window. Click again and half is visible at
- the top of the window − very easy to miss. So, either slide the scroll
- bar or simply remember that it is only just visible at the edge of the
- window.) − PB.
- 5.6
- • Ligatures − The word ‘ligature’ actually means ‘tie’ or ‘bandage’ and,
- in typesetting, it refers to groups of two or more letters which are
- joined together. In professional typesetting, several exist but the
- Archimedes’ font system has just two: fi and fl.
- 5.6
- Impression provides no handy short cut to access them, so if you wish to
- use them, you need to do two separate searches through the entire text
- as follows: bring up the find text box and enter fi into the first slot,
- ensuring the Case sensitive switch is on. Then move the caret into the
- second box, hold down <alt> and type 158 on the numeric keypad. A single
- character will be entered which, when viewed in an outline font which
- supports it, will appear as fi. For fl, repeat the process, but replace
- all occurrences of fl (obviously) with character 159. Remember to do a
- case sensitive search, since replacing Fi and Fl with the ligatures will
- make them lose their capital letters.
- 5.6
- Not all fonts (especially the PD ones) contain the ligatures, and some
- PD fonts have them in the wrong places. You should replace the normal
- letters with the ligatures after you have finished your document because
- Impression’s spell-checker does not take them into account and will
- query any words containing them. This month’s disc should contain a
- system font file which I have created; it is identical to the standard
- one, except that the previously undefined characters have been created
- to look like the outline font characters they produce, so you can see
- things like smart quotes and ligatures in Edit. It’s useful to load this
- in the boot-up sequence. − RH.
- 5.6
- • Rotated text in Impression − Those lucky enough to own an A5000 will,
- of course, have the new versions of Draw and Font Manager. Charles Moir,
- director of Computer Concepts, suggests the following tip: since the new
- Font Manager can rotate text by itself, create some text in Draw, and
- import it into an Impression graphic frame. Dragging in the frame with
- <adjust> should now rotate the text or you can set the angle precisely
- in the ‘Alter graphics’ dialogue box. − RH
- 5.6
- • Hyphens and minus signs − Character 153 is very useful as a hyphen −
- as you can see! In fact, it is really the minus sign (compare it with
- the plus and you will find they are both the same width and their
- crossbars are at the same horizontal position − see for yourself −+−+−);
- the minus sign on the keyboard actually produces a short hyphen of the
- sort which should be used to break words at the ends of lines. Anyway,
- Impression provides handy access to this character: simply press <ctrl-
- shift> in conjunction with the minus key. Characters 151 and 152 are the
- en (–) and em (—) dashes respectively but, unfortunately, these have no
- handy short cuts. − RS & RH.
- 5.6
- • Finding effects − If you want to be able to look through a document
- and find where a particular effect occurs (as opposed to a style) all
- you need to do is modify one line in the ‘UK’ file in the Resources
- directory inside the !Impression application. As supplied, there is a
- line that says “Cnf1:” − all you have to do is add an E making it
- “Cnf1:E”. Next time you start up Impression, you will find that, when
- you click on the arrow at the right of the search string box, it will
- list not only the styles but also the effects. (In case you have
- forgotten, I published a hint a year ago to explain that, to find a
- particular effect or style, you should select it from the menu on the
- search string box and follow it by an “@”. In other words, look for any
- string following the place where that effect / style is first switched
- on.) − PB.
- 5.6
- • Double scale − on later versions of Impression (about 2.14g onwards)
- you will find that <shift-F12> no longer doubles the scale of the
- current view. This is because <shift-F12> is used on RISC-OS 3 to toggle
- the icon bar forwards and backwards. Double scale has now been moved to
- <ctrl-shift-F11>. − PB.
- 5.6
- • Reverse characters − From 2.15 onwards, there is a keyboard short-cut
- that I have been asking for since I started using Impression in earnest
- − swap characters. If you press <ctrl-shift-Q>, the two characters
- either side of the cursor swap places. This is very helpful because it
- allows you to correct, very quickly, one of the most common tpying
- errors! − PB
- 5.6
- • Single word spelling check − If you want to check the spelling of a
- single word, you don’t need to select the whole word − just place the
- cursor somewhere in the word and use <ctrl-W>. (I suppose everyone
- except me knew that anyway!) I find that this speeds things up
- especially if, as you are typing, you get to a word that you don’t know
- how to spell; all you do is to have a go at typing the word and then,
- before you press space or full-stop, press <ctrl-W>. If it is incor
- rectly spelt, it is selected and the spelling box appears with,
- hopefully, a guess at the right spelling. Click on “Replace” and away
- you go.
- 5.6
- Also, if, while you are typing, you get a spelling error bleep then, as
- long as you haven’t started to type the next word, you can press <ctrl-
- W> and correct the erroneous word. − PB.
- 5.6
- • Avoiding smart quotes − In the magazine, I like to use “smart quotes”
- rather than plain quotes but they look a little funny on program
- listings. If I want to paste in an article which contains programs as
- well as straight text, I have a problem. Either I can switch smart
- quotes OFF on the Preferences list and then edit them into the text or I
- can leave it ON but edit them out of the listing. Then I had a brain-
- wave (-storm?). I realised that the only time I use the Corpus font is
- for program listings, so I never need to have smart quotes in that font.
- All I did, therefore, (well, Adrian did for me) was to load Corpus into
- FontEd (Careware 7) and edit the smart quotes so that they are the same
- as the normal quotes. This can be done by editing each smart quote in
- turn and copying the plain quote into its place. − PB.
- 5.6
- • Rotating sprites − Draw-files can be rotated within Impression but, in
- the normal course of things, not sprites, scanned pictures or bit-image
- clip-art etc, unless Enhanced Graphics is switched on. This is hidden
- away in Preferences, the one in the icon-bar menu, not the one in the
- Document sub-menu. It is effective immediately and does not need to be
- saved as a preference option. (When switched on it also automatically
- switches on Greyscale Dithering but that can be switched off again if
- not wanted.) Scanned images etc can then be rotated inside Impression by
- entering an angle in the Alter Frame box. Remember also, when subse
- quently reloading the file, to switch on the Enhanced Graphics again,
- (if it’s not saved as a preference) as this won’t happen automatically.
- − PD. You can also rotate the image by dragging within the graphic frame
- using <adjust>. − RS.
- 5.6
- • Spurious form-feeds − Using dot matrix printers (e.g. FX80) you may
- get an extra form-feed between pages when printing a multi-page
- document. The solution, (thanks to Alan Williams of Acorn, Melbourne,
- for this one) is to set Scale in the ‘Print’ box to 97 or 98%. No
- further problem! − PD.
- 5.6
- • The underline trap − If you set up underline when creating a Style,
- maybe for a sub-heading, do not try later to remove the underline with
- <shift-ctrl-U>. Probably nothing at all happens but, sometimes, the
- screen goes inverse and panic reigns until Reset is pressed! − PD. I
- tried without success to repeat this problem with release 2.16, but
- <shift-ctrl-U> caused no ill effect. It did not cancel the underlined
- style either, which I guess is correct. − RS.
- 5.6
- • ¼ ½ ¾ characters − These are available on <alt-188>, <alt-189> and
- <alt-190> respectively in the main fonts − Trinity, Pembroke, Homerton
- etc and several others but by no means all. Many fonts conform in
- general, but with omissions, to the character set laid out in Appendix 5
- of the manual. Most contain a bullet (•) on <alt-143>, (or <shift-ctrl-
- H>) and a decimal point (·) on <alt-183>. The ones that don’t, Optima
- and Hull for instance, have their bullet on <alt-183> and a different
- set of characters in the row 128 to 159 including, for instance, TM. In
- general, there seem to be two main variations for this row while System
- is completely on its own. The characters in 160 to 255 appear more or
- less standard across the board where they are present, though most fonts
- omit some and some (PD and magazine fonts particularly) omit most if not
- all the top-bit-set characters, save for the £ symbol. With <alt-215>
- and <alt247> it’s a toss-up whether you get × and ÷, or Œ and œ, or
- nothing at all. (!Chars in Impression’s Utils directory is a useful
- reference but much better is Beebug’s !CharSel which looks identical but
- has a pointer showing the character number.) − PD.
- 5.6
- • Fit lots − If you want to know or have forgotten what it means, it
- does not appear in the index. You will find it on p.144 on the last, and
- easily missed, page of ‘Print’. − PD.
- 5.6
- • Frames − How to put a frame around an existing chunk of text? You
- can’t! The only way is to move the chunk to the clipboard, create the
- frame and then copy it back in. − PD. You can also create a number of
- new frames which fill the area occupied by the old frame, click in the
- old frame area and then press <adjust> in the new frames. Text will then
- flow from the old frame into the new one and, if you stretch the new
- frames so that there is no printable area left in the original frame,
- the desired effect can be achieved. − RS.
- 5.6
- • Master pages − It seemed perfectly logical to me to press ‘New
- Chapter’ on the key-strip when I wanted to start a fresh document with
- other than the default master page. I got the new master page all right
- − as well as the default page I didn’t want and found no way to get rid
- of it. (You need to move to the unwanted chapter, then use <menu>
- <Edit><Delete Chapter>. − RS) You can alter the current chapter to use a
- different master page by using ‘Alter Chapter’ which is not on the key-
- strip. The key short cut is <shift-ctrl-A>. Be aware that if you are
- viewing the master pages when trying to do this, you will find ‘Alter
- Chapter’ greyed-out on the Edit sub-menu. The answer is to go back to
- the document page, remembering which number master page is wanted and
- try again there. Also note that if you want to use one of the three-
- column master pages, (numbers 7 or 8) remember the default frames are
- only Guides and you must create new frames before anything can be typed
- in. − PD.
- 5.6
- • Guide frames − It is really most provoking, having carefully followed
- the manual to find the screen blandly refusing to operate as stated. Can
- anyone suggest why my guide frames do not remain visible? I create them,
- (sub-menu New Frame) on the document page or on the master page, click
- elsewhere and they just vanish. They are not a lot of use if I can’t see
- them, so which little hidden detail in the manual have I failed to
- register, please? − PD. Guide frames are always positioned as the
- rearmost (back) frame on the page. If you make sure all text /graphic
- frames on the page are local frames (<menu><frame> <alter frame><make
- local>) and then reduce these in size, you will see the yellow guide
- frames that you had created. Guide frames are mainly of use when setting
- up a master page, though. − RS. Am I missing something here? Can’t you
- just make it visible by using <ctrl-F10> to alter the frame and changing
- from a white background to transparent? − PB.
- 5.6
- (By the way, I hadn’t come across the idea of turning a master frame
- into a local frame. If you hadn’t either, read up in the Impression
- manual on page 84 then have a play with it − it could prove a useful
- facility. − PB)
- 5.6
- • Font cache full error − Even with the cache set to a ridiculous size,
- 750k or more, this error recurred and anyway, isn’t the cache itself
- supposed to clear enough space for a new font if necessary? I found that
- some silly PD game had unplugged SpriteUtils module and restoring it
- seemed to resolve the difficulty. It’s not only PD games that do this −
- the demo version of Cataclysm sent out by Archimedes World unplugs
- virtually everything including the Font Manager. Even a power off /on
- will not restore unplugged modules. If you aren’t sure whether anything
- has been unplugged, type *UNPLUG and it will list any unplugged modules.
- − RS.
- 5.6
- • Rule off errors − The Impression manual is a bit short on advice when
- the package refuses to do what it should and it is totally silent on the
- subject of errors. What do you do for instance when the machine throws
- at you: “Overflow while transforming point, print aborted” ? I had been
- trying to print a landscape document containing a few vertical rules.
- Later, I noticed one of the rules slightly projecting beyond the edge of
- the frame. I went to the Style Edit box and switched ‘Rule-off’ on, and
- set it to 0pt. I must have done something right − the next time I tried,
- it produced a perfect print-out! − PD
- 5.6
- • Shift and control symbols − Patrick sent a detailed account of using
- !FontDraw to generate a graphical representation of the <shift> and
- <control> keys − as they appear in Impression menus − and then continued
- to incorporate these into embedded frames at 30 or so points in his
- text. He also asked if there was an easier way? − PD. Yes there is. Use
- the Acorn Font Editor and David Pilling’s D2Font Drawfile to font
- converter which is on the same disk as his Trace program (now available
- through Archive for £6). You will end up with a new outline font which
- can be used within Impression just like any other font and which can be
- used within a style and assigned to a function key to turn it on and
- off. If anyone has the time to do this, please would they send Archive a
- copy of the resulting font for the magazine disk? − RS.
- 5.6
- • Find within a group of frames − If the currently selected frame is a
- group of frames then the <find text> menu option is unavailable. To make
- it available, select a frame that does not contain a group and which
- contains at least one letter, (or create such a frame and text character
- if necessary). Then, to find or replace throughout the document
- (including all grouped frames), turn on the <whole document> button in
- the <find> dialogue box, and use find or replace as normal. − SK.
-
- Hints and Tips
- 5.7
- • A5000 floppy drive problems − There have been a number of comments in
- Archive about the slowness of the A5000’s floppy drive. Could this be
- due to a bug which RISC-OS 3 has with the ADFS buffers. There was a note
- with my machine when it was delivered saying that the ADFS Buffers
- should be configured to zero due to a bug which causes occasional data
- errors. Configuring thus makes the floppy drive incredibly slow during
- copy operations with a track access taking more than 2 seconds. I
- preferred to have the speed and I spoke to Peter Dunn of Acorn at an
- Open Day in Glasgow recently who told me that the adfs buffers problem
- had only appeared with the Acorn DTP and that it shouldn’t be a problem
- with other programs like Impression. Indeed they had their A5000s
- configured with ADFS Buffers set to 16k so I copied them.
- 5.7
- Then just the other day, Impression 2.16 dropped through my letter box.
- A couple of days later, I had two relatively complex newsletters to
- typeset. The first crashed during a save operation, losing most of the
- text. I thought ‘That will teach me to make back-up copies in future.’ I
- remade the document successfully. The next job was done with two copies
- on the hard disk, a main and a back-up. The main would auto-save and I
- would make a back-up by adding a ‘b’ to the filename. Well into this
- job, it crashed. Both copies were corrupted, so I gave up and returned
- to version 2.14f. No further problems. A word with Computer Concepts and
- they suggested that I return the ADFSbuffers to zero.
- 5.7
- I’d be interested to hear if other A5000 and Impression users have had
- similar or other experiences with their setup. David Woods, Glasgow
- 5.7
- • ArcDFS and !65Host − If you try to use ArcDFS with the 6502 emulator,
- you may get a “Bad DFS emulation” error. John Fletcher of Dabs Press
- says: “This is because the manual does not fully explain how to use
- ArcDFS with the emulator. The way to access a DFS disc, is not to type
- *DISC, but to type: *Dir dfs::<drive number>. You should also change
- drive using the above command instead of *Drive.” P Northing, Sheffield
- 5.7
- • Bringing windows to the front − To move a window to the front, you
- must click on its title bar. This often involves moving other windows to
- get to it. However, I have just discovered that clicking on the window’s
- adjust size icon (bottom right) also brings the window to the front.
- This ‘obvious’ hint may help prevent too much window shuffling! R
- House, Andover
- 5.7
- • Canon Bubblejets BJ300 & BJ330 − There are some undocumented features
- on these machines that make cleaning and changing ink cartridges a bit
- easier. The normal cleaning cycle is started by pressing the shift then
- the cleaning keys. An extended cycle is started by pressing shift then
- pressing and holding cleaning and then pressing shift again.
- 5.7
- There is a function called reference aging which sprays ink all over the
- printed area of the paper. Be warned though that this uses a lot of ink
- and the ink is very difficult to remove from hands, etc so have a poly-
- bag handy to pop the sheet in!! The sequence can be stopped by turning
- the printer mains off. Press shift then press and hold cleaning and then
- press card and paper together and release cleaning.
- 5.7
- I’ve been using “Report” photocopier paper in my BJ300 and the print
- quality is superb. Ned Abell, Kidderminster
- 5.7
- • Changing the file allocation of a hard Disk − My A410/1 is equipped
- with an internal 40M ST506 hard disk (NEC). Recently I added an external
- SCSI hard disk (cached Morley “Cheetah”, 100M, fitted with a Rodime
- R3000 disk). When I compared those two drives, I made some very
- unexpected discoveries.
- 5.7
- I copied the entire content of the internal disk (39M) to the new drive,
- because I wanted to soak test the old disk. To my amazement the SCSI
- “free” window showed that I had already used up no less than 62M of
- space! I phoned the (very friendly and competent) Morley help line, and
- they told me that larger drives usually were formatted differently from
- small ones (with larger blocks), because this improved their speed
- performance.
- 5.7
- They advised me that if the extra space was more important to me than
- speed, I should use the formatter on the Morley support disk to alter
- the size of allocated blocks. I fiddled around with this application and
- found that it is indeed possible to change the space needed for a file
- quite considerably; in the configuration that I finally chose, the 39M
- from my old disk actually occupied slightly less space − below 38M!
- 5.7
- What is more, the speed tester showed a slightly worse performance, but
- any improvised speed tests I did myself (like copying 3M of files from
- RAM disk to hard disk and back) showed these differences to be quite
- negligible.
- 5.7
- So: If you buy a new (second) hard disk, it might be a good idea to
- check how it administrates data, before you do any serious work with
- it! Jochen Konietzko, Köln, Germany
- 5.7
- • DFS reader and A5000 − When the DFS reader (Shareware 31) is run on
- the A5000, it fails with “Unknown or missing variable at or about line
- 260”. This can be cured by adding the following line:
- 5.7
- 215 large% = TRUE : full% = TRUE
- 5.7
- M Pullin, Cheltenham.
- 5.7
- • Econet interface faults − We had a big mains spike that ‘took out’
- twelve BBC B Econet interfaces. At first, the Masters and Archimedes
- machines seemed OK but further investigation proved otherwise. The
- findings may prove useful to others.
- 5.7
- There are two types of Acorn Econet cards, (plus the XOB one) an old one
- and a newer one. All the machines with the old type of cards seemed fine
- after the spike but none of the newer ones worked! Our first thought was
- that they were zapped by the spike. However, on closer examination, when
- we disconnected the old type machines from the network, the ones with
- the newer type card started to work. Looks like some of the old type
- cards are faulty but still working. The old style cards definitely seem
- more fault tolerant than the new ones! A faulty old style card can still
- work but it will stop other machines with the new style cards from
- working! Dave Leckie, Fort William.
- 5.7
- • HP Deskjet 500 & RISC-OS 3 − Here is a tip about the RISC-OS3 printer
- drivers and the HP Deskjet 500. The graphics margins given in the HP
- configuration for the A4 (Generic Deskjet) are a bit conservative.
- 5.7
- Top − 12.5mm
- 5.7
- Bottom − 19.9mm
- 5.7
- Left − 5.0mm
- 5.7
- Right − 7.0mm
- 5.7
- From the manual and from my own experiences of using the printer and
- seeing where it can print to, I have come up with new values which are:-
- 5.7
- Top − 1.5mm
- 5.7
- Bottom − 10.5mm
- 5.7
- Left − 3.2mm
- 5.7
- Right − 3.2mm
- 5.7
- I have used these values very successfully ever since I got the machine.
- The RISC-OS 2 printer driver for the Laserjet/Deskjet has problems when
- it has different values for top and bottom margins because it prints out
- in landscape mode in the opposite direction to the way the margins have
- been set. i.e. it prints out last, the part of the sheet which is shown
- by the print borders to be the top! RISC-OS 3 has sorted this out
- allowing the maximum printing area to be available. It can be very
- important when using Impression’s ‘fit lots’ facility to reduce pages to
- have as much room as possible as margins are reduced as well. David
- Woods, Glasgow
- 5.7
- • Paper for inkjets − I too have had much trouble obtaining good paper
- for my HP Deskjet 500. The manual recommends photocopy paper and that
- you should use the paper’s correct side (as marked by the arrow on the
- end of the packet). I have found photocopy paper to be poor no matter
- what side I try. The results usually come out ‘furry’ where the
- absorbency of the paper has caused the ink to creep by capillary action.
- Prior to the type of ink sold by Hewlett Packard being changed to a more
- permanent one, some photocopy paper gave white patches within areas of
- black which I think was due to a degree of waxiness repelling the ink
- from spots but this phenomenon happens no more.
- 5.7
- (Acorn Inkjet owners can also benefit by using the HP DJ 500 cartridges
- as they are the same fitting. Ed.)
- 5.7
- The new ink seems to give good results with some types of paper but
- rather ‘furry’ with others. Interestingly, I found that Croxley Script
- 80gsm, similar to that mentioned by Paul Bamberger in Archive to be very
- poor. I have settled on two paper types for ‘cheap and good’ and
- ‘expensive and excellent’ printouts. The cheaper paper is ‘Plus Fabric
- 70gsm’ from Empire Fine Papers at about £7.50 for 500 sheets. This gives
- consistently sharp, even results although it does wrinkle if there are
- large printed dark areas.
- 5.7
- For printouts intended for further copying by a photocopier or at a
- printing company (or for making letterheads for small businesses) I have
- found that a type of paper generally described as ‘laid’ paper,
- available in various brands, is excellent, costing about £15 a box. It
- is smooth on one side and has a fine, ribbed pattern on the other. Both
- sides accept ink very well and you often see the paper used for
- prestigious company printed letterheads. I have used both ‘GB Classic,
- White Laid, 100gsm’ and ‘Conqueror, High White Laid, 100 gsm’. David
- Woods, Glasgow
- 5.7
- • Printing on labels or A3 paper − Most RISC-OS printer drivers have
- difficulty with anything other than A4 paper. Although they have a page
- length setting, they do not tell the printer the page length to expect,
- so the printer still assumes that it has 11“ or A4 size paper (usually
- determined by a DIP switch). This is fine when printing on individual
- sheets or when using a sheet feeder to feed labels or envelopes but it
- causes serious problems with tractor feed labels or with A3 paper.
- Imagine printing on 1” tractor feed labels from Impression. The
- Impression master page must be defined to be 1“ length and, similarly,
- the printer driver’s page length must be set to 1”. The first label is
- printed and the printer driver sends a form feed character telling the
- printer to advance to the next form (page). Unfortunately, the printer
- driver assumes that it is using 11“ paper and feeds over the next 10
- labels, simply because the printer driver did not define the printer’s
- page length. Similarly, printing on A3 paper (using a Canon BJ330 for
- example) fails because the printer thinks it is using A4 paper. The
- solution is for the printer driver to pass on the page length setting to
- the printer and this is a very simple change for Acorn to make.
- Meanwhile, it is necessary to modify the page start and end strings
- manually. With RISC-OS 2 drivers this can be difficult, but with RISC-OS
- 3 the printer driver editor allows it.
- 5.7
- With an Epson compatible printer, the page length can be defined by
- putting ESC,“C”,n in the page start string, where n is the page length
- in lines (1/6“ per line). With an IBM compatible printer, an extra
- ESC,“2” is needed on the end. Furthermore, it is sometimes necessary to
- change the page end string which is often set to perform a printer reset
- (ESC,“@” on Epson printers) after every page − this should be removed
- completely. Note that these changes must be applied for each resolution
- setting that is to be used and that a new printer driver file should be
- saved with its name and type set appropriately to indicate that it is a
- different version for a special page size. Paul Skirrow, Ipswich
- 5.7
- (Acorn are aware of the problem and have found at least a partial
- solution − see the comments below, page 9. Ed.)
- 5.7
- • Mandelbrot bakeware − I have written a short PROC to improve Basil’s
- Mandelbrot program (Archive 5.6 p57):
- 5.7
- DEFPROCdebug
- 5.7
- WHILE flour=flour+weevils
- 5.7
- REPEAT
- 5.7
- GETweevil
- 5.7
- BPUT# weevil ON blockA%
- 5.7
- BEAT blockB%
- 5.7
- UNTIL dead%=TRUE
- 5.7
- weevils-=1
- 5.7
- ENDWHILE
- 5.7
- ENDPROC
- 5.7
- The variable declaration: Mouth_Open=FALSE is the best I’ve seen so far!
- I have another for anyone who typed the program in:
- 5.7
- Egg_on_face=TRUE.
- 5.7
- Joseph Seelig, Harrow.
- 5.7
- • Ten tips for larger memories − The article on better use of available
- memory (Archive 4.6 p52) set me thinking and here’s a tip for those of
- us who don’t have a hard disc. I have 4M in a 310, two 3½“ internal
- floppies and an external 5¼” drive.
- 5.7
- If you look at what you use your computer for, it breaks down into a few
- task areas as well as playing games. I create a Task disk for each
- activity and that sits in the 5¼“ drive and I have one each for DTP,
- business and drawing. Each disc has !System, different !Fonts and the
- appropriate applications that I can cram on using !Compression.
- 5.7
- Each task disc has two Obey type files called !boot and startlist to get
- everything up and running and here I put in a plug for the excellent
- !DeskEdit utility from Beebug which allows even me to get this working
- quickly.
- 5.7
- Let’s look at the business Task disc which is called “LrgeBus1”.
- 5.7
- The !boot obey file consists of one line...
- 5.7
- Desktop-File adfs::LrgeBus1.$ .startlist
- 5.7
- and clicking on this runs the second file called startlist. As you
- probably know, if this Task disc were in drive 0 it could be set to auto
- start each time the computer was turned on, by setting the disc to *OPT
- 4,3 and the computer to *Configure Boot.
- 5.7
- The second obey file called startlist sets up the essential tasks that
- you will need but some of these are squeezed on the disc under the
- !Compression filing system. If you specify “cfs#adfs” as a filing system
- to get them to load, the computer throws a wobbly so I set up two
- aliases as the first lines of startlist.
- 5.7
- Set Neds$Dir adfs::LrgeBus1.$
- 5.7
- and
- 5.7
- Set NedsCFS$Dir cfs#adfs:: LrgeBus1.$
- 5.7
- you can then get the computer to find the bits you want by using:
- 5.7
- <Neds$Dir>.!System
- 5.7
- and to load various fixes found in the system modules directory into
- memory like..
- 5.7
- RMLoad<Neds$Dir>.!System.
- 5.7
- modules.WimpUtils
- 5.7
- and then to get !Compression up and running
- 5.7
- <Ned$Dir>.!CFS
- 5.7
- Now a word about !Fonts. I use Swiss as my main business font. You need
- to edit the run file of !Fonts and put in a “desktop” command at the end
- after “FontCat”or it will stop and ask you to press space. I also tailor
- the run file after the line “Echo Font Manager 2.42 installed.” with the
- lines
- 5.7
- Echo Neds Business Fonts now available:
- 5.7
- Echo
- 5.7
- because I like to personalise things!!
- 5.7
- Back in startlist, we can now run...
- 5.7
- <NedsCFS$Dir>.!Fonts
- 5.7
- which are compressed and then in a compressed directory called resources
- 5.7
- <NedsCFS$Dir>.resources.
- 5.7
- !PrinterDM
- 5.7
- <NedsCFS$Dir>.resources.!Alarm
- 5.7
- and anything else you need and the last line is
- 5.7
- desktop
- 5.7
- The whole process is very easy to achieve and each task disc can be
- tailored. The drawback is that its a bit on the slow side and all my
- fonts have to be uncompressed before I use them but I do set a large
- Fontsize. Ned Abell, Kidderminster
- 5.7
- • Transferring PC files with the Emulator − It is true that the multi-
- tasking PC Emulator does prevent access to the PC hard disc partition
- while it is running and it is therefore necessary to quit the emulator
- before a file created by a PC program can be read in RISC-OS. This is
- because RISC-OS does not know whether the PC hard disc partition is in a
- valid state or not (i.e. a PC program may be writing to an open file).
- However, it is possible to transfer files between RISC-OS and the PC
- emulator by using floppy discs. After the PC has written a file to the
- floppy it may be necessary to dismount the floppy disc (using the menu
- item) and re-open it by clicking on the floppy icon to make RISC-OS read
- the directory again (otherwise it may not realise that it has been
- changed). This works with RISC-OS 3, but should also work with any of
- the various PC disc readers. Paul Skirrow, Ipswich
- 5.7
- • Watford mouse − If you need to replace the plug on a Watford mouse
- (old version) my experience may be useful. The original plug is moulded
- onto the cable, and it took careful dismantling with a sharp knife to
- discover where each wire went.
- 5.7
- I purchased the replacement plug from Maplin Electronics (code JX19V
- 0.82p, page 177). This plug has three disadvantages; firstly it has no
- cable strain relief, so you must be sure of your wiring, secondly, it is
- extremely difficult to disassemble and thirdly you need to shave a small
- amount from the front to fit it into the socket of an A310. (I don’t
- think it would fit too well on an A3000!) The wire colours are as
- follows (functions as on p469 of the A310 User Guide):
- 5.7
- Pin Function Colour
- 5.7
- 1 X Reference white
- 5.7
- 2 Switch 1 yellow
- 5.7
- 3 Switch 2 red
- 5.7
- 4 0V return brown
- 5.7
- 5 X Direction green
- 5.7
- 6 5V supply black
- 5.7
- 7 Y Reference blue
- 5.7
- 8 Switch 3 orange
- 5.7
- 9 Y Direction purple
- 5.7
- M Angove, Caerphilly
- 5.7
- • Wonderland on SCSI − I’ve managed to get Wonderland to work on SCSI.
- What you do is:-
- 5.7
- Obtain the SCSI “fix”, which Archive will supply if you send them a
- charity donation (minimum £2). However, it’s also on this month’s
- program disc.
- 5.7
- Run the INSTALL program on the “fix” disk, using the “fix” disk when
- asked for disk “ONE”, then the original disk “TWO”, “THREE” and “FOUR”.
- 5.7
- When the installation is complete, use !Edit to modify the “win”
- application code. Look for the second occurrence of the text “adfs” and
- replace it with “scsi”. (If you replace the first one, it all seems to
- work until you save or restore a game position.)
- 5.7
- To get it to work on SCSI with 1M memory you need to unplug more modules
- than you would with ADFS, because SCSI, SCSIFiler and SCSIDirCache take
- up some space. I find that I need to unplug:− Debugger, Draw, EcoNet,
- FontManager, IIC, NetFS, NetPrint, NetStatus, PaletteUtil, Percussion,
- RAMFS, RAMFSFiler, ShellCLI, SoundChannels, SoundDMA, SoundScheduler,
- StringLib, SystemDevices, WaveSynth.
- 5.7
- Mike Williams, London N16.
- 5.7
- The following hints and tips are taken from the February Acorn Customer
- Services Newsletter.
- 5.7
- • RISC-OS 2 printer drivers
- 5.7
- 1) We have had reports of the release 2 printer drivers producing the
- following error message:
- 5.7
- “Invalid number of output bits”
- 5.7
- This error is produced when you attempt to print a sprite that was
- created in a 256 colour screen mode such as MODE 15 in a 16 colour mode
- such as MODE 12. The solution to the problem is to print in MODE 15 if
- this error occurs, or to print the sprite in the mode in which it was
- created.
- 5.7
- 2) When attempting to load any of the many RISC-OS 2 desktop printer
- drivers the following error message may be displayed: “Filing
- System or path ‘Printer:’ not present internal error xxxx”
- 5.7
- The error is caused by one of the printer driver support modules
- becoming unplugged from the operating system. To resolve the problem,
- the first action to take is to find out which modules are unplugged.
- This information can be found by typing the following command from the
- command line:
- 5.7
- *UNPLUG
- 5.7
- It is then necessary to re-insert the modules that *UNPLUG has shown as
- being unplugged with the following command:
- 5.7
- *RMREINIT <ModuleName>
- 5.7
- Once you have used *RMREINIT to re-initialise all the modules, you
- should then perform a <ctrl-break> to ensure all the modules have
- started correctly.
- 5.7
- 3) Printing labels on small page lengths can sometimes cause problems.
- 5.7
- a) !PrinterDM (2.46) reads a system variable called PDriver$DMExtra at
- the start of each print job and sends it to the printer before the
- actual data stream. PDriver$DMExtra has to be set using GSTrans format
- so, to set a page length of nine lines, you would use:
- 5.7
- *SET PDriver$DMExtra |[C|I
- 5.7
- You would use |[C|J for ten lines and |[C|K for eleven lines and so on.
- This command can be executed explicitly from the command line (after
- !PrinterDM has been loaded) or incorporated in the !Run file.
- 5.7
- b) Set the (Graphics) clip window to the appropriate size from
- !PrinterDM’s icon bar menu. If the stationery is continuous, you can
- leave the top and bottom graphics margins set to zero.
- 5.7
- c) Finally, you need to tell the Wordprocessor you are using, the page
- size of each label.
- 5.7
- • RISC-OS 3 printer drivers − Loading RISC-OS 2 printer drivers into
- Acorn A5000s with RISC-OS 3 can cause problems if an attempt is then
- made to load the RISC-OS 3 !Printers application from the Applications 1
- disc or directory if stored on the hard disc.
- 5.7
- !Printers will report the error “!Printers requires PDriver 3.16 or
- later”.
- 5.7
- The error occurs because the RISC-OS 2 printer driver loads an older
- PDriver module than 3.16. The solution to the problem is to type from
- the command line.
- 5.7
- *RMKILL PDriver
- 5.7
- *RMREINIT PDriver
- 5.7
- This will allow you to load the new !Printer application supplied with
- RISC-OS 3 on the A5000.
- 5.7
- • Maestro − Version 1.75 has a problem where notes are displayed at
- double-height in certain modes. This may be fixed in the field by
- deleting or renaming the sprites22 and !sprites 22 files.
- 5.7
- • PC Emulator hints & tips
- 5.7
- 1) Deleting an unformatted or non-system PC Emulator hard disc partition
- on an A5000.
- 5.7
- RISC-OS 3 looks at the PC hard disc partition (DOSDisc, &FC8) as if it
- were a filing system and therefore before it will delete the partition,
- it must look inside to find out what files are there. To be able to
- delete an unformatted partition it is necessary to fool the operating
- system into believing that it is not a PC partition, by changing its
- filetype. However, it is not possible to change its filetype from within
- the desktop and the following information gives details of how to change
- the filetype from outside the desktop. The file can then either be
- deleted from the command line as shown below or from the desktop.
- 5.7
- a) Press <F12> from the desktop to get the command line (*Prompt)
- 5.7
- b) Type:
- 5.7
- *SETTYPE ADFS::4.$.PC.Drive_C TEXT <return>
- 5.7
- *DELETE ADFS::4.$.PC.DRIVE_C <return>
- 5.7
- 2) The Archimedes keyboard has a U.S. style PC layout. You should not
- therefore use KEYBUK or KEYB UK in the Autoexec batch file. Also, the £
- sign on an Archimedes keyboard doesn’t exist on a PC keyboard, so to get
- a £ sign you will need to enter its ASCII code 156:
- 5.7
- Under the emulator, hold down the ALT key and type 1 5 6 on the numeric
- keypad. (Remember to have Num Lock on).
- 5.7
- 3) Configuration − ‘Startup Text’ − The startup text is only intended
- for use with a hard disc partition, not for floppy based systems. The
- problem is that the first characters of the startup text are lost
- because they are taken as a reply to the ‘Insert DOS Boot Disc and press
- any key’ message which you get when running the emulator from floppy
- discs.
- 5.7
- The startup text should also not be used unless you have an Autoexec.Bat
- and Config.Sys file. If you do not have these, the startup text is taken
- as a reply to confirming the date.
- 5.7
- 4) PC Software compatibility − there are some screen redraw problems
- with WordStar 4 using the !PCEmS emulator. However, no problems have yet
- been reported using the large !PCEm emulator. A
- 5.7
- 5.7
-
-
-
- Impression Hints & Tips
- 5.7
- There’s no shortage of hints and tips this month and there is a special
- emphasis on mail merging, printing and uses of Impression’s “save
- graphics” facility.
- 5.7
- • Mailmerge (1) − There have been some queries about mail merging
- with Impression, so Rob Sherratt contacted Computer Concepts to outline
- the problems. Rob wrote, “I have tried to use the Business Supplement
- (Importer) and Impression to mailmerge a set of addresses to generate a
- sheet of laser labels where each label contains successive fields from
- the database. I have come to the conclusion that it can’t be done at
- present − unless you tell me otherwise! I can print, say, a sheet of 24
- labels for the same addressee (using a variety of methods) − but I
- cannot print 24 labels for different addressees unless I enter the data
- manually. Isn’t this a normal requirement for mailmerge programs?
- 5.7
- “It seems to me that Impulse’s ‘Merge’ command causes Impression to do a
- ‘Delete then merge’ operation, coupled with a small change to Importer’s
- user interface to toggle the ‘Delete vs Duplicate’ option on and off. As
- well as, or instead of this, you might like to consider adding a new
- pair of methods to Importer – :Importer Next record and :Importer
- PrevRecord – which would allow the user to build a composite ‘24-up’
- merge template where each frame in the template might contain the
- following merge commands;
- 5.7
- :Importer Getfield 1
- 5.7
- :Importer Getfield 2 etc
- 5.7
- :Importer Next Record
- 5.7
- On receiving the Next Record message, the Importer application would
- reset its field counter to 1 and would scan forward for the start of the
- next record.”
- 5.7
- Charles Moir agreed that !Importer would not allow different names and
- addresses to be imported into different frames and thought that Rob’s
- new command to move onto the next record would work, but again that’s
- another improvement that will have to wait for Impression 3 (if that is
- the correct title!).
- 5.7
- However, Charles did have this useful suggestion, “whenever we have had
- a requirement to produce labels in this fashion (e.g. for mailing the
- Archimedean magazine) we have gone about it in a different, and I would
- suggest, a simpler way. First we create a master page that has separate
- frames for each label. These are then linked together so they all form
- part of one flowing story, so text will flow from one frame to another.
- Presuming you have the name and address list in ASCII form with some
- identifier between records − all you do is drop the file into the first
- frame. All the names and addresses then flow into successive frames,
- creating new pages as required. If the names and address are fixed
- length records it is only a matter of making sure the label is the
- correct size to hold exactly one record and it should all format
- correctly. Even if the records are not the same length all that is
- required is a single search and replace operation to replace the record
- separator with a
- 5.7
- command to make sure each new record starts in a new label.
- 5.7
- (If you use label sheets that have no selvedge, i.e. the whole A4 page
- is divided into exactly 24 equal spaces, you just create one simple
- master page whose size is just 70mm × 37.1mm. Then all you do is ensure
- you have “ignore page borders” set and “fit lots” and it prints
- beautifully. Ed.)
- 5.7
- “The only disadvantage of this system is that it loads all the names and
- addresses in one go. However, we use this system for mailing 10,000
- names and addresses on a standard 4M machine and so space is not a
- problem. In fact, I don’t think something like !Importer would cope with
- anything like that number of records satisfactorily. This method has the
- advantage that you can see and edit each record individually if
- required, and you can print any required range of pages or multiple
- copies, etc.”
- 5.7
- • Mailmerge (2) − Stuart Bell had more modest needs. He wanted to
- send a basic letter with a customized “Dear ...” beginning, and an
- address in a box at the bottom of each letter. His solution to create
- the skeleton letter as a master page <ctrl-F2 − Edit − New Master Page>.
- In this master page type everything, except the names for the salutation
- (the “Dear . . .” bit). Then create two frames on the master page, one
- for the name, the other for the address box, and make text flow from one
- to the other.
- 5.7
- Now, leave the editing of the master page and return to your document.
- Alter the chapter so that your newly created master page is the one for
- that chapter and you will see your letter appear, with boxes for the
- name and address. Type in the name of the first person, and their
- address, using <ctrl-G> to advance to the next frame, as required.
- Impression will generate new pages as necessary, each containing the
- same letter.
- 5.7
- In order to make the salutation look neat, you may need to move the
- ‘name’ frame on the master page, to line up “Dear” with the name. Check
- this with a large scale view of your document.
- 5.7
- Now, the whole point of a mailing list is not to send one letter, but to
- make it easier the next time you write to the same people. To change
- your letter, save the original document under another name – e.g. if
- originally “Letter1”, save it now as “Letter2” to avoid losing the
- original letter. Then simply change the letter on the master page of
- Letter2 to produce your new letter. Alternatively, create another new
- master page and alter your chapter to use it.
- 5.7
- To produce a simple listing of your mailing list, create a master page
- with many frames stacked in a vertical line (or any other close pattern
- for that matter). You will then have a simple list of the names and
- addresses in a tabular form.
- 5.7
- I know that most mailmerge packages offer more complex facilities than
- this penny-pinching approach, such as selecting certain names out of a
- list. However, if your needs are as basic as mine, then it certainly
- beats the laborious task of producing twenty (or two hundred) virtually
- identical letters manually!
- 5.7
- • A merge program? − On a related note, identical pleas from Peter
- Blenkinsop and P Closier: “has anyone written a merge program for
- Impression?” Peter has several two page documents he would like to merge
- into one (longer) document, mainly for ease of printing, although he
- admits that a printer queue system might do just as well. No doubt other
- users would also find this useful, so has anyone cracked this particular
- nut? Batch printing would undoubtedly be useful for the next release of
- Impression (with perhaps the incoming document forming a new chapter),
- but we do also need a proper printer queueing system for Acorn printer
- drivers. (Laser Direct owners already have one. Ed)
- 5.7
- • Viewing clip art – Impression’s ease of manipulating and printing
- Sprite and Draw files has been touched on by others but the following
- may be of interest. Just as with fonts, one really needs to see a print-
- out of one’s collection of clip-art files in order to pick out the one
- that’s just right for a particular job. I have done this by setting up
- my collection on a set of standard Impression pages laid out with 5 rows
- of 4 frames, each frame filled with a clip-art object. The sheets when
- printed out then provide a ready reference and can be saved economically
- as Impression documents using ArcFS/Spark/Compression.
- 5.7
- The beauty of this is that in future you can ignore the individual clip-
- art files and work from the saved Impression document. You choose the
- frame you want and save it as a graphic to the RAM disc. Then drag the
- icon from RAMFS to the Impression frame you have set up to receive it.
- Note that you have to use the RAM disc as an intermediate stage for the
- transfer. If you drag the icon directly across to the new Impression
- frame you get a message to the effect that Impression cannot save a file
- to itself. (Jack Evans)
- 5.7
- Don’t forget though that there are a number of commercial programs that
- allow you to view clip art and these might be more useful if you are
- constantly adding new images to your collection. Incidentally, an
- earlier version of Glimpse (Sherston Software) used to hang up the
- computer if presented with a DrawPlus file. I am glad to report that
- this was fixed (v1.02 and later) and, although the program ignores
- unknown file types, it will not cause any other problems. If you have an
- early issue of Glimpse, Sherston advise you to call them for advice and
- they tell me that they are further developing the program.
- 5.7
- • Taking graphics from documents – Paul Skirrow writes in response to
- the Impression Hints & Tips by Jochen Konietzko (Archive 5.5 page 41)
- and also makes use of the save graphics facility. It is true that
- graphics cannot be edited within Impression, but it is a simple matter
- to click on the graphic frame to select it and then use the <save
- graphic> option on the document menu (or use <shift-ctrl-T>). I rarely
- bother keeping separate copies of graphics files now, I just save them
- from Impression directly into Draw, modify them and then save them back
- again. (With PipeDream, things are different as it does not take its own
- copy of the graphics file, but simply stores the filename, so modifying
- the file on disc will change the image in the PipeDream document.)
- 5.7
- It is true that the draw files are stored within the document directory
- (called story1, story2, etc), but they should not be edited because
- Impression stores information about them elsewhere (in the !DocData
- file). It is possible to crash the entire system by modifying a graphics
- file within an Impression document. I have always regarded Impression
- documents as no-go areas − they belong to Impression and use Computer
- Concepts’ own format which is not published and which could be changed
- between Impression versions.
- 5.7
- The only disadvantage with using the <save graphic> option is that it
- always saves the graphic as a draw file, even if it is a sprite. If you
- want to edit a sprite, you must therefore drag the draw file from
- Impression to Draw, select the object and then use the <save sprite>
- option on the save menu to save into Paint. This is clumsy, especially
- if memory is short, in which case you will have to save the intermediate
- files to disc before loading into Paint. Computer Concepts do this
- mainly to simplify the inner working of Impression (it means everything
- can be regarded as a Draw file which may contain sprites). Another
- argument for using Draw files to hold sprites is that they contain
- absolute size information, whereas the sprite format does not. It
- therefore makes a lot of sense for scanners to produce Draw files
- containing the scanned sprite together with absolute size information
- describing the resolution of the scanned image. The <save graphic> menu
- item only appears when a graphic frame is selected (whereas the RISC-OS
- guidelines suggest that unavailable menu items should be shaded so that
- the user knows they are there).
- 5.7
- Could Impression be made to pass graphics files to Draw and Paint when
- they are double clicked? Perhaps Computer Concepts would be prepared to
- implement this. I also think that there should be an easy way of
- transferring data between applications generally without bringing up a
- save menu. I know that we are all used to it now, but it is not really a
- “save” operation that you are doing when transferring things between
- applications, and the filename is certainly irrelevant when you are not
- saving to a filer window. One approach, adopted by Squirrel, is to make
- a click-drag from a Squirrel window to another application transfer the
- data by doing a save automatically. This is extremely useful in Squirrel
- and means that an address can be transferred to a letter very quickly
- without using a menu. I have also adopted this technique in some of my
- programs where <click-drag> is not used for something else, but
- unfortunately, many programs use <click-drag> for their own operation.
- What do other people think? Could we standardise on a <shift-drag> or
- <alt-drag> to do a save. (This would also work with filer windows using
- the default or last filename).
- 5.7
- • Styles used and unused − When I am preparing the magazine, I use one
- big file that contains all the things like hints & tips, comments, small
- ads, products, etc, so I am forever importing new bits of text into it
- and then exporting them back out into the magazine. This means that the
- style list grows longer each month so, every now and then, I remove
- unwanted styles. To do this, I select the whole text with <ctrl-T> and
- pull up the edit styles window with <ctrl-F6>. I click on the style
- selection menu button and there is a list showing which styles, in the
- whole story, are used and which are unused. I can then select and delete
- the ones that aren’t needed (remembering to click the delete button with
- <adjust> so that the window stays on-screen).
- 5.7
- Sometimes, I want to remove a style completely even though it is being
- used. If so, I select all the text, pull up the style menu and click on
- the style to be removed. That will remove all occurrences of it. Don’t
- forget though that a style may also be used on a master page, in which
- case it will not delete. This can actually be put to good advantage
- because I don’t want to accidentally delete, say, “bold” just because it
- is not used in the file as it stands. To prevent accidental deletion,
- create a new dummy master page, create a text frame and type in a few
- choice words and give them the styles that you want to maintain
- permanently within the document. They cannot now be deleted acciden
- tally. − PB
- 5.7
- • Kerning − On Impression, kerning is extremely easy to achieve,
- especially with the keyboard short-cuts. If you want to (R)educe the
- space between adjacent characters, simply put the cursor between the two
- characters and type <ctrl-R> a number of times. If you over do it,
- simply (E)xpand the space a bit using <ctrl-E>. If you can’t make a fine
- enough adjustment with <ctrl-R> and <ctrl-E>, go through the menu
- options to call up the kerning menu and adjust the number. Remember that
- if you want to try a particular number without losing the kerning
- window, click on Set with <adjust>, not <select>. For vertical kerning,
- use <ctrl-U> to move the text (U)p and <ctrl-J> to er... (J)ump
- downwards?! (Can anyone think of a better mnemonic?)
- 5.7
- The trouble with kerning being so easily available is that it’s easy to
- hit <ctrl-R, E, U or J> by accident. I have tried to use search and
- replace to locate any spurious kerning in a document but cannot find any
- way to do it. You can, of course, export the text with styles and load
- the text into Edit and search for “{but I would have liked a simpler
- way. Any ideas? Still, if you can see roughly where the spurious kerning
- appears, simply go through the menu to get the kerning window up on
- screen and use cursor left and cursor right to move the cursor around
- through the suspect areas. If you move past a kerning statement, the
- numbers will flick up in the kerning window. To remove the kerning,
- click <adjust> on the Clear button and go back to using the cursor keys
- to search for other kerning statements, finally clicking <select> on
- Clear. − PB
- 5.7
- • Impression speed users’ tips − (Reprinted from Archive 5.5 where the
- last two lines were accidentally omitted!) I find that having got into
- the habit of using <adjust> for reverse scrolling, it really does save
- time, especially when I am laying out the magazine and the screen is
- cluttered with windows. Just press <select> to scroll down and switch
- quickly to <adjust> to go back up again without having to move the mouse
- and locate the other end of the scroll bar − which could be under
- another window anyway.
- 5.7
- Also, <adjust> can be extremely useful, again with a cluttered screen,
- for moving windows whilst keeping them where they are relative to the
- other documents. It takes practice, but it speeds things up in the long
- run. − PB
- 5.7
- • Search & replace on styles − Impression appears to have the facility
- to search and replace on styles. Indeed, you can search for a style
- using {name” }@, where @ is the wildcard for “any text” but, sadly, you
- cannot replace with another style name, despite the fact that there is a
- menu button on the Search & Replace window to allow you to put a style
- name into the Replace box. I don’t know why CC haven’t implemented this
- facility. They obviously intended to do so because the menu button on
- the Replace box has no other purpose − as it stands, it is totally
- redundant. Perhaps it could be implemented in Impression III but, in the
- meantime, you can do it in Edit, though it’s a bit cumbersome.
- 5.7
- Suppose, for example, that you have a document with various headings all
- using “Heading” (marked on <F2> as Sub-heading) and that you want to
- change some of them to a sub-sub-heading, let’s call it “SubHead”. What
- you will have to do is to click somewhere in the text and use <shift-
- ctrl-T> to save the text. Save it with styles, perhaps into a ram disc.
- Then load that into !Edit and use search & replace to, selectively,
- change into . (The reason for using is to catch, in one go, ON} and
- OFF} and } all of which can occur in the document.)
- 5.7
- To get it back into the original document, click back in the main text
- in the Impression document, select the whole text with <ctrl-T>, set it
- all back to base text with <ctrl-B>, delete it and then go back to the
- Edit document and save the text into the Impression document. Remember
- though to save the document before you start messing about with it in
- this way. You can get in an awful mess if you edit the text file
- incorrectly.
- 5.7
- If CC can’t add the style search & replace feature into Impression,
- perhaps someone could produce a simple editing application for us. As
- the Impression text is loaded into it, it would create a list of the
- styles available then it would allow you to search and replace using a
- menu to provide you with a list of the styles it knows about. Could
- someone write that for us, please? If you’d like to have a go, get in
- touch with me at Archive. − PB
- 5.7
- • Style problems − When I am preparing the magazine, I save the text of
- each of the articles, with styles, as edit files in one directory. I
- then have a dummy Archive magazine document into which I insert the
- various edit files. If I have a particular space to fill, say about a
- page and a half, I link together the title frame and the text frames
- that are to make up the article. I know roughly how long each article
- is, so I drop one of the edit files into the title frame. Sometimes, it
- turns out to be just too short or too long and I want to delete it, but
- if I just mark it with <ctrl-T> and delete it and then drop in another
- edit file, I find that the whole text ends up in the same style as the
- main heading − then it really is too long! As far as I am concerned,
- this is a bug in Impression. Anyway, the “work-around” is to mark the
- whole text and press <ctrl-B> first, to change it all back to base
- style, before deleting the text. On a long file, especially if a lot of
- it is displayed on screen, this can take quite a time. Does anyone know
- a quicker work-around?
- 5.7
- Also, I find that, fairly often, the title is left justified instead of
- centred as its style specifies. If I click on the title, type a single
- character and delete it, it springs back to the centre − another bug,
- but one that’s easy to get round. − PB
- 5.7
- • RTF loader − To transfer WP files from the Mac (or PC versions of
- Microsoft Word, I guess) you can use the RTF (rich text format) loader
- that comes with the Impression Business Supplement. The RTF loader is
- fairly intelligent and knows to swap things like ë into ’ because the
- fonts on Mac and Archimedes use some different ASCII numbers. However,
- unless it has been fixed, it sometimes hangs up with some of these “top-
- bit-set” characters. For example, I was trying to transfer a cook book
- and it hung up (the whole machine!) every time it came across a degree
- symbol as in 100°C. The answer was to search and replace the degree
- symbol into, say, an equal sign or some other character not used in the
- text, transfer with the RTF loader and then search and replace back
- again. (Some of you may have noticed the repeated occurrence of ë
- instead of ’ in one of Risc User’s articles last month − I guess they
- are still using Macs for their magazine and the Archimedes to Mac
- conversion is not as intelligent.) − PB
- 5.7
- • Blank pages printed − If your printer sometimes prints blank pages (as
- Patrick Dowling explained in Archive 5.6) it is probably because the
- printer driver’s bottom margin is set too small. The printer drivers
- send all the data they are told to send for the page and then send a
- form feed character. If they send so much that the printer just goes on
- to its next page and the driver then sends a form feed character the
- printer will eject a sheet. Make sure that the printer’s DIP switches
- are set to disable perforation skip and check any others which determine
- the page size. When entering the bottom margin into the printer driver’s
- paper size entry, it is important to be on the conservative side and
- make this a fraction larger than you think it ought to be (by a couple
- of mm). The only disadvantage to this is that you will lose the ability
- to print in this borderline area, but at least you will avoid the
- mysterious blank pages which can otherwise occur. Unfortunately, printer
- manuals are notoriously awkward, especially when you are looking for the
- top and bottom margins, and most of the printer drivers are supplied
- with the incorrect default settings (to be fair, some drivers are
- written for a range of printers which each have their own unique paper
- margins). Paul Skirrow.
- 5.7
- (I passed this hint on to one of our Technical Help Service members a
- couple of weeks ago and she confirmed that it worked. All she did was to
- increase the paper size from 297.00 mm to 299.00 mm and she got no more
- blank pages. Ed.)
- 5.7
- • Entering special characters into Impression − There is an updated
- version of !Chars on this month’s disc which can enter special charac
- ters into Impression without needing to tell Impression which font they
- came from. It works just like Chars (or NewChars2 to be precise) and
- provides quick selection of common fonts (Dingbats, Symbol, System and
- Trinity) as well as passing the font information to Impression in DDF
- form. Note that RISC-OS 3 defines the system font to be the same as the
- Latin 1 fonts, complete with the “ and ” characters, but RISC-OS 2
- doesn’t, so it will help if you use the new System font provided on the
- Archive 5.6 program disc if you are using RISC-OS 2. Paul Skirrow.
- 5.7
- • PC file transfer − Impression saves text files with an LF-CR termina
- tor rather than the CR-LF terminator which is used by most PC programs.
- This can confuse a lot of PC programs which automatically ignore the
- first character after a LF (which they expect to be a CR), and Computer
- Concepts have agreed to fix this some time. Paul Skirrow.
- 5.7
- In the meantime, you can presumably use !Edit’s search & replace
- facility to change \x0A\x0D into \x0D\x0A remembering to set the magic
- characters to ON. Ed
- 5.7
- Ovation Hints and Tips
- 5.7
- • Master documents – Hilary Ferns has sent details of master documents
- she has created for use with Ovation. Her design for A4 and A5 letters
- will be particularly useful for newcomers to either DTP or Ovation, and
- her templates for an A5 four sided leaflet, an A5 booklet, A6 leaflet
- and a greetings card or notelet are valuable time savers. With Hilary’s
- permission they are on this month’s program disc in Ovation format, but
- here is just one example of how Hilary used Ovation to produce an A5
- four sided leaflet.
- 5.7
-
- 5.7
- This is the format of our weekly church news-sheet, which displays news
- about all the events in bordered frames − rather like the ads page of
- the local newspaper. It is printed on A4 paper, photocopied and folded
- neatly in half.
- 5.7
- I use an HP Deskjet 500 printer, so all the margin settings are based on
- this. Printer paper size is A4.
- 5.7
- 1. Set up a new document with the following settings:
- 5.7
- A4
- 5.7
- Landscape
- 5.7
- Single-sided
- 5.7
- 2 columns
- 5.7
- Gutter 24mm
- 5.7
- Margins – Top 12mm, Left & Right 12mm, Bottom 8mm
- 5.7
- 2. Open up the Master page for your document and include on this any
- regular heading, logo, etc. that you may require. We always have our
- church logo at the top of the front page, together with a “welcome”
- greeting. These are placed in picture frames at the top of the right-
- hand column, i.e. the front of the leaflet when it is eventually folded.
- 5.7
- 3. Obviously, page two will not want these headings, so you will now
- need to create a new chapter (“New Chapter − After current Chapter”) and
- specify chapter two starting at page two (“Modify chapter”). Delete your
- frames from page two. Remember too to think about any paragraph styles
- that you are likely to use.
- 5.7
- 4. Go back to your document and delete the existing pages one and two.
- You will now have a simple document with two A4 sheets, each with 2
- columns and a wide gutter. Within this framework you can create text and
- picture frames, making sure they do not overlap the central guidelines.
- I tend to display most of my text in individual text frames with
- borders, often with a nested picture frame for a picture or “FontFX”
- generated heading. Only rarely do I type directly into the principal
- text frame.
- 5.7
-
- 5.7
- 5. You may want to have text which flows from one page to the next.
- However, using the principal text frame, the text will not flow back up
- to the “back” page of the leaflet. To do this you will need to create a
- text frame to fit within each column and use the “link” tool to flow the
- text from the front, to the middle and onto the back. This is quite
- simple to work out. (see diagram).
- 5.7
- 6. Save your stylesheet. Printing out such a document is straightfor
- ward. Change to “landscape” on the “Print setup” before saving
- stylesheet.
- 5.7
-
- Hints and Tips
- 5.8
- • A5000 filing system problems − There have been more comments about
- problems with losing files on the A5000. We suggested last month that
- you take Acorn’s advice and configure the ADFSbuffers to zero. In the
- light of further experience, we would suggest it even more strongly.
- This problem occurred with Impression but we have had reports that it
- also happens with other software. You have been warned. Ed.
- 5.8
- David Pilling adds... In the last Archive, you had a piece from someone
- saying that it is necessary to *configure ADFSBuffers 0 to make Acorn
- DTP and Impression work properly. The official line according to Beebug,
- is that unless A5000’s are configured like this, they will corrupt their
- hard discs sooner or later. There are well documented cases of this
- occurring. In addition, many programs, ArcFS and the Beebug hard disc
- backup for example, won’t work unless ADFSbuffers are set to zero.
- 5.8
- It is also common advice to load the SerialUtils module before attempt
- ing to use comms programs. The naive point of view is that SerialUtils
- does something clever that allows buffers to work. That is not so,
- SerialUtils actually prevents buffers from doing anything. It is
- therefore much more efficient to stop your comms program from loading
- any buffer and not bother with SerialUtils. SerialUtils will apparently
- also prevent things like printer buffers from working.
- 5.8
- New versions of Hearsay cope with all this automatically and there is a
- version that uses the buffer manager built into RISC-OS 3. However, we
- are still having discussions with Acorn over whether this works properly
- in RISC-OS 3 as fitted to the A5000. David Pilling, Blackpool.
- 5.8
- • A5000 second floppy drive − In Archive 5.6 p12, it said that if you
- were putting an external 5¼“ drive onto an A5000 it should be connected
- into the middle socket of the three. That is not correct. It should go
- into the one farthest East. The internal drive goes in the middle one.
- The other point to note is that it said the external drive can be set to
- ID zero or one. That it true but it should perhaps should have been
- spelt out more clearly that it should NOT be set to either two or three.
- If it is, it will not work properly. Ed.
- 5.8
- • Adjust clicking (RISC-OS 3) − Most people will, by now, have cottoned
- on to the idea that clicking open a directory with <adjust> closes the
- parent directory viewer and that clicking the close button with <adjust>
- opens up the parent. One extension of this on RISC-OS 3 is that clicking
- the close button with <adjust> while holding down <shift> doesn’t
- actually close the window but does open up the parent directory.
- 5.8
- • Directory date stamps − When copying a directory and its contents, the
- destination directory is created with the current date stamp, as opposed
- to being created and then stamped with the date of the source object.
- (Looking through the PRM I haven’t been able to find a way of stamping a
- file to a date other than that held in the real time clock.)
- 5.8
- In the case of application directories, the application directory’s date
- stamp appears to be copied through, but on closer inspection this is not
- so. The application directory is created with the current date stamp (as
- for normal directories) however, the date which the filer presents the
- user (for the date of the application directory) is actually the date
- stamp of the !RunImage file.
- 5.8
- RISC-OS 3 automatically detects an attempt to move from one directory to
- another on the same media, and performs a Rename operation instead of a
- copy, whereby the date is retained. (Possibly, RISC-OS 3 also has a
- facility for stamping a filer object with a specified date, although I
- will not know about this until the RISC-OS PRM is released!) D
- Lenthall, London.
- 5.8
- • Exiting the desktop (RISC-OS 3) − With RISC-OS 2, you could set up an
- obey that would exit the desktop by making the last line:
- 5.8
- FX 138,0,252
- 5.8
- and as long as no text was output by the obey file, the desktop would be
- exited. The same can be done with RISC-OS 3 by placing the above line in
- the obey file twice. It also works with the keys, press <shift−ctrl−F12>
- twice and the desktop is exited. Also when <shift−ctrl−F12> has been
- pressed F12 (*Commands) and <ctrl−F12> (Task Window) still work!
- Warning: If you do use this then the ADFS will be reset, losing the
- current directory. P Bedford, Peterborough.
- 5.8
- • Extra validation flags − With RISC-OS 3, a number of new validation
- flags are available for when you are designing window templates. So far
- I have found the following:
- 5.8
- Border Flags − these require the border flag to be set on and give an
- icon a 3D border similar to Impression’s, they all begin with a B (or b)
- and are followed by a number to give the border type:
- 5.8
- 0 Single raised border.
- 5.8
- 1 Double border for grouping.
- 5.8
- 2 Triple border for default action icons.
- 5.8
- 3 Triple border for writable icons.
- 5.8
- 4 Single recessed border.
- 5.8
- 5 Standard single line border.
- 5.8
- 6 Triple recessed border similar to type 3.
- 5.8
- Border type 0 and 3 can be followed by a comma and then a number between
- 0 and 15 to define the colour to slab to.
- 5.8
- Pointer definition − you can define an icon so that the pointer changes
- shape when over the icon. This is done by placing a P (or p) in the
- validation string followed by the name of the sprite containing the
- pointer shape. Try sprite ptr_double.
- 5.8
- Many others may be available with other parameters for the above options
- but until the RISC-OS 3 Programmers’ Reference Manual is available we
- won’t really know. Most of the above is available in RISC-OS 2 by using
- the Interface module by Simon Huntington. P Bedford, Peterborough.
- 5.8
- • Iconised windows with Impression (RISC-OS 3) − If you want to
- distinguish Impression documents that have had their windows iconised,
- generate an icon called ‘ic_impressio’ and place it in the !Sprites file
- in the !Impress directory. Mine is the Impression quill & pot in a
- window (ic_?). P Bedford, Peterborough.
- 5.8
- • Menon hotkey − If you use Menon’s hotkey facility, a problem can arise
- in that it may not work if you have a window open that contains the
- caret (e.g. Impression). However, it will work if you hold the alt key
- down at the same time as the hotkey i.e. <alt-ctrl-H>. P Bedford,
- Peterborough.
- 5.8
- • Oak drives with Acorn SCSI card − If you are using an Oak drive with
- an Acorn SCSI card (e.g. if you own an A540), you may find that you are
- unable to dismount the drive and that you get a ‘Bad parameters’ error.
- 5.8
- Hard drives that are formatted using an Oak SCSI card include additional
- information in the boot block which the Acorn card objects to. To solve
- these problems (especially annoying with removable hard drives!), you
- will have to format the disc with Acorn’s SCSIDM.
- 5.8
- Unfortunately, it is not that simple. When the desktop is started up,
- the Acorn card looks at all of the drives that are available. Once it
- sees an ‘incorrectly’ formatted Oak disc, it will not allow SCSIDM to
- access the drive. This means that you will have to start up outside of
- the desktop in order to format the disc. This can be done by typing
- *Configure Language 0 <return> from the command line and then pressing
- <ctrl-break>.
- 5.8
- Once this has been done, you can format your drive in the usual way −
- see pages 11-12 of the SCSI Expansion Card User Guide.
- 5.8
- To start up in the desktop again, simply type *Configure Language 4
- <return> from the command line and then press <ctrl-break>. Adrian
- Look, N.C.S.
- 5.8
- • PC file transfer revisited − When transferring text files from PC to
- the Archimedes (or vice versa), it is necessary to convert the carriage
- returns (CRs) to line feeds (LFs) and vice versa. This can be done using
- the search and replace facility of Edit, but it is much quicker just to
- use the in-built transfer ‘CR<->LF’ which is available from the ‘Edit’
- submenu or to press <F8>. G Riley, Cheshire.
- 5.8
- • PC screen fonts revisited − In Archive 4.12 p10 there was a hint that
- explained how to change the screen font of the PC Emulator to any BBC
- screen font. Since then, the program has been updated to include EGA+
- and ECD definitions.
- 5.8
- The EGAROM looks to contain two sets of character definitions: EGA+ 16×8
- cells and ECD 14×8 cells, as opposed to the ROM file which (amongst
- other things) contains the 8×8 cells used in the other modes. The
- following program will convert these character sets for EGA+ and ECD
- modes in a similar manner to my previous program:
- 5.8
- REM >EGAFONT
- 5.8
- REM Merge BBC FONT file into !PC EGAROM file
- 5.8
- REM NB. *** COPY ORIGINAL EGAROM FILE BEFORE RUNNING THIS ***
- 5.8
- :
- 5.8
- ON ERROR REPORT:PRINT“ at line ”;ERL :CLOSE#0:END
- 5.8
- DIM rom% &2000,C%(7)
- 5.8
- R$=“:4.!PCEM.EGAROM”
- 5.8
- OSCLI(“*LOAD ”+R$+“ ”+STR$~rom%)
- 5.8
- :
- 5.8
- F%=OPENIN(“:4.BBCFONTS.NEWFONT”):REM File of type &FF7
- 5.8
- :
- 5.8
- REPEAT
- 5.8
- A%=BGET#F%
- 5.8
- IFA%<>23THENPRINT“This is not a BBC font file!”:END
- 5.8
- O%=BGET#F%:PRINT“Char &”;~O%;“ ”;: VDU23,255
- 5.8
- REM EGA+ chars 16x8 − double horiz. thickness
- 5.8
- P%=O%*16
- 5.8
- FORI%=0TO7
- 5.8
- C%(I%)=BGET#F%:C%=C%(I%):VDUC%
- 5.8
- REM − assemble 8x8 char array
- 5.8
- rom%?(P%+2*I%)=C%
- 5.8
- rom%?(P%+2*I%+1)=C%
- 5.8
- NEXT
- 5.8
- VDU255:PRINT
- 5.8
- REM ECD chars 14x8 − blank first and last three rows
- 5.8
- P%=&1000+O%*14
- 5.8
- rom%?(P%+0)=0:rom%?(P%+1)=0
- 5.8
- rom%?(P%+2)=0
- 5.8
- FOR I%=0TO7:rom%?(P%+3+I%)=C%(I%): NEXT
- 5.8
- rom%?(P%+11)=0:rom%?(P%+12)=0
- 5.8
- rom%?(P%+13)=0
- 5.8
- UNTIL EOF#F%
- 5.8
- CLOSE#0
- 5.8
- :
- 5.8
- OSCLI(“*SAVE ”+R$+“ ”+STR$~rom%+
- 5.8
- “ + 2000”)
- 5.8
- END
- 5.8
- This program has been tested in both modes by squeezing every last byte
- out of my A3000 and through the use of the PD multisync ‘emulator’ − I
- could just about stand the flickering! The ECD characters are a little
- smaller due to the difficulty in mapping the default 8 onto 14 rows,
- however, it does result in greater line spacing and arguably improves
- readability.
- 5.8
- Finally, I suppose that if anyone needs to redefine the MDA1 outline
- font (has anyone found anything which uses the MDA mode?), they could
- use !FontEd or a similar application to change the font name of their
- preferred outline font to MDA1. The MDA0 font would appear to contain
- definitions for the ‘additional’ IBM character set and, as such, is less
- likely to require redefinition. P Bready, Glasgow.
- 5.8
- • Printer buffers − RISC-OS 3 provides a configurable printer buffer.
- Use the command:
- 5.8
- *Configure PrinterBufferSize <n>K
- 5.8
- to set the buffer size to <n> K in length. This does not seem to be used
- by the RISC-OS 3 printer drivers but is used outside the desktop
- environment. To check the buffer has been configured, perform a <ctrl-
- reset> after the configure command, go into Basic and type:
- 5.8
- PRINT ADVAL(-4)
- 5.8
- the result will be the size of your printer buffer. P Bedford,
- Peterborough.
- 5.8
- • Translator tips − Translator can easily be used to convert a sprite
- from one screen mode to another. From the Translator menu, simply
- deselect the ‘Pop up > Auto mode’ option, and then select the ‘Process >
- Sprite output > Output mode > Current’. Select the desktop mode for the
- output sprite and drag the sprite to be converted onto the Translator
- icon. Finally, save the converted sprite from ‘Misc > Save > Full’
- option.
- 5.8
- When printing foreign graphics files on a monochrome printer, better
- results can be obtained by selecting the ‘Black and white’ option from
- the Translator menu i.e. the sprite is converted into 256 grey scales.
- (I think this is because there is less distortion of the colours than
- when fitting the sprite to the 256 desktop colours available and then
- the printer driver using ColourTrans to convert them to monochrome
- information.) C Paul, Manchester.
- 5.8
- • Waiter and MultiFS clash − You can’t run The Data Store’s Waiter with
- the version of MultiFS that comes with the new PC Emulator. You must
- quit Waiter before running MultiFS. J Thompson.
- 5.8
- • Window bug (RISC-OS 3) − There is a bug in the windows redraw routine.
- If you use !FormEd to define a window with a vertical scroll bar, no
- horizontal scroll bar and no size icon, then turn on the horizontal
- scroll bar, being careful not to cover where the size icon would be with
- the menu, you will see that no box is redrawn in the area where the size
- icon should be. If you drag other windows over this window the result is
- a mess in the area where the size icon should be. As this example shows,
- the result is not as expected. P Bedford, Peterborough.
- 5.8
- • Window movement (RISC-OS 3) − If you use <adjust> in the scroll bar
- areas to provide reverse movement, you may find useful the facility for
- complete window scrolling. If you click adjust and hold on either slider
- bar, the pointer vanishes and if you move the mouse, the window is
- scrolled in the same direction. This only works if both scroll bars are
- on a window. P Bedford, Peterborough. A
- 5.8
- 5.8
-
-
-
- Image-setting
- 5.8
- Hints & Tips
- 5.8
- • Make sure you ask the image-setting bureau to produce films in a form
- that your printer can use. e.g. Can he use ‘right reading positive’?
- 5.8
- • Only use high quality PostScript fonts such as the range from EFF –
- mistakes can be expensive.
- 5.8
- • Ensure that the client ‘accepts’ a bromide ‘proof’ before having the
- work printed.
- 5.8
- • Scanning − if you do your own scanning, rather than having it done via
- a bureau, use the lowest possible scanning resolution that is consistent
- with the screen resolution being used by the printer − i.e. a 150 l.p.i.
- screen (a typical value for high quality magazines) requires no more
- than 150 dots per inch scan, assuming a reproduction ratio of 1:1. A
- 5.8
-
- Hints and Tips
- 5.9
- • Auto-destruct! − There are applications, like Impression, that have an
- auto-save facility. Auto-save is a very helpful facility and I use it
- myself but, with Impression (and perhaps other applications), there is
- an option to auto-save without prompt. In other words, every few
- minutes, without you being able to stop it, it will save the current
- document on top of the original document on disc. If you can’t already
- see the danger of this, an anecdote might help...
- 5.9
- Tord Eriksson sent an article (over 400k long including various draw
- files) all the way from Sweden on a single floppy disc and there was no
- space on the disc for a duplicate copy of the document. I loaded the
- article and was playing around with it prior to editing it for the
- magazine. I was trying to see if the text was all one story and so had
- cut and pasted various bits when suddenly I got the message “The file
- has just been saved”. Fortunately, I hadn’t actually deleted anything
- important just prior to the auto-save, but it does go to show that you
- should never send a file to someone else having left the preferences set
- to auto-destruct, sorry, I mean auto-save. Ed.
- 5.9
- • Compression − Contrary to the review of Compression in Archive 5.2
- (page 57) it is possible to initiate cfs directory displays from script
- files. This might prove useful for those who want to use cfs as the
- default filing system and who want to automatically display the root
- directory on switching on the Archimedes. The problem is that the line,
- 5.9
- Filer_OpenDir CFS#SCSI::Work.$
- 5.9
- will not work unless the CFSmodule is active and it is inadequate to
- simply run the !CFS application before this line in the script file. The
- trick is to set up a !Boot application (as always) and to use this
- application’s !boot (or !run) file to load the CFSmodule and activate it
- before calling the script file. Assuming the !CFS application is hidden
- away on the hard disc in the directory $.Utils. Filehndlng, this can be
- achieved using the following commands:
- 5.9
- |Load CFS
- 5.9
- RMEnsure CFSModule 1.10 RMLoad $.Utils.Filehndlng.!Cfs .CFSModule
- 5.9
- RMEnsure CFSModule 1.10 Error CFSModule not loaded
- 5.9
-
- 5.9
- |Initialise CFS and set the
- 5.9
- |scratch dir for it to use
- 5.9
- |in handling files
- 5.9
- NewCFS SCSI:4
- 5.9
- CFStemp SCSI::Work.$.!System
- 5.9
- |The !cfs !boot file should be
- 5.9
- | run to allow the correct icons
- 5.9
- | to be “seen” by the system:
- 5.9
- $.Utils.Filehndlng.!Cfs.!Boot
- 5.9
-
- 5.9
- | run desktop, load applications
- 5.9
- | and display root directory
- 5.9
- Desktop -file <HardBoot$Dir> DeskBoot
- 5.9
- The script file, in this case called DeskBoot, used to load the
- applications and open the root directory should be something like this:
- 5.9
- Run <r>!System
- 5.9
- Run <r>!Scrap
- 5.9
- Run <r>!FontsPlus
- 5.9
- Run <us>!StickyBD
- 5.9
- Run <um>!Alarm
- 5.9
- Run <uf>!Dustbin
- 5.9
- Filer_OpenDir CFS#SCSI::Work.$
- 5.9
- The commands “*Newcfs” and “*CFStemp” are not documented in the
- Compression manual but are explained in sufficient detail in the *Help
- feature of the CFSmodule itself. (Type *help cfsmodule for a list of the
- commands, then do a *help for each individual command for more details.)
- 5.9
- There is an example !boot application on the monthly program disc. Rob
- Wears, Birmingham.
- 5.9
- • Speeding up SQuirreL − If, like me, you often have lengthy queries and
- reports for the SQuirreL database to perform, you may have wondered why
- it makes no difference at all when you drag the table in question onto a
- RAM disc.
- 5.9
- The reason for this is that SQuirreL makes extensive use of the !Scrap
- application; if you copy this, too, to the RAM disc and double click on
- it, the hard disc will be silent.
- 5.9
- Just don’t forget to double click onto the version of !Scrap on your
- hard disc when you remove the RAM disc!
- 5.9
- Jochen Konietzko, Köln, Germany. A
- 5.9
- 5.9
-
- Ovation Hints & Tips
- 5.9
- The following was submitted by Hilary Ferns, for which we are very
- grateful. She adds that the Ovation manual is full of hints and tips
- like these (and identical to some we have already published − oops!).
- 5.9
- • Selecting tools − Using <select> to choose from the toolbox will
- automatically return you to the text insertion icon after you have
- performed one action with that tool. Using <adjust>, however, will allow
- you to remain with your chosen tool until you decide to select the next
- tool again yourself. This is useful when you want to draw several lines
- or frames, or link a number of successive boxes.
- 5.9
- • Using picture frames − The default ‘inset’ for a picture frame is 0
- mm. (For a text frame it is 1 mm.) Ovation will scale your imported
- picture with the bottom and left sides aligned to the frame. I have
- discovered on many occasions these sides of a picture (Draw or Sprite
- format) to have been slightly cropped. This is not always obvious on
- screen but is quite noticeable when printed. I now offer various answers
- to this problem.
- 5.9
- 1. Set inset to 1mm before importing the picture.
- 5.9
- 2. If you want to move the picture within the frame, whatever the inset
- you are ln danger of losing a fragment on any edge. You can give
- yourself more space by either increasing the frame size (often not
- suitable) or by decreasing the size of the picture by 1% in each
- direction.
- 5.9
- 3. Remember too that holding down shift while moving the picture will
- restrict movement to horizontal and vertical directions only, thus
- enabling you to move the picture more accurately.
- 5.9
- I find the keyboard short-cuts for scaling a picture within a frame
- particularly useful <shift-ctrl-G> to scale and <shift-ctrl-H> to fill
- the frame.
- 5.9
- • Text to Draw path object − The character selection application
- (!CharSel) supplied with Ovation, apart from offering access to
- alternative characters, also allows a single character to be changed to
- Drawfile format. To do this, you select the character with <adjust>. The
- resulting Drawfile icon can then be dropped into an Ovation picture
- frame. Various interesting effects can be obtained by using these
- characters in headings (together with a bit of imagination!).
- 5.9
- • Default style-sheet − In the !Ovation application directory is a
- style-sheet called ‘Default’. This is the one used each time you load
- Ovation and click on the icon to open up a document. This can be
- replaced with a style-sheet of your own choice, e.g. one you use
- regularly, but it must be called ‘Default’. This would mean that you
- will always have your own particular choice of paragraph styles defined
- when Ovation is run. This is a very useful facility not to be missed.
- 5.9
- The next few hints and tips were sent by Aneurin Griffiths from Trefin,
- Dyfed. Again we are most grateful and are glad to see a number of
- readers redressing the Impression/Ovation balance by sending in some
- really useful Ovation tips.
- 5.9
- • To draw short lines using the “line-tool” − Draw a long line, even
- passing through text, and press <select>. Now shorten the line by
- placing the pointer on the red box at the ‘long end’ of the line, and,
- using <select>, shorten the line to the required length.
- 5.9
- • Printing labels using computer sheets with 2 or 3 rows of labels − If
- the sheets are not A4 size, adjust the page size on the printer menu.
- Carefully measure the distance from the top of the sheet to a point half
- way between the first label and the second label. Use ‘View 200%’ and
- mark a horizontal guide line by placing the pointer on the side ruler
- and pressing <select>. (Fine adjustment is possible using <adjust>.)
- Measure the distance from the mid point previously taken to one mid-way
- between label 2 and 3. Carefully draw a guide line as before. Other
- guide lines can now be drawn with the same spacing.
- 5.9
- Vertical guide lines can now be drawn in the same way. Now draw a text-
- frame in the first of the rectangular spaces, allowing space for the
- margins around the label. At this stage it is a good idea to save the
- layout as “Blnk_xy”, where values for the label size could be coded.
- 5.9
- Enter the text in the text frame. Then select Object − Duplicate Frame,
- and enter the appropriate number (‘requirement’ − 1!). Without changing
- the instructions further, a stack of labels will be shown. These are now
- easily moved to their positions on the grid using <adjust>. Obviously,
- the labels on one printed sheet may be all the same or assorted. It is
- sensible to make the first printout on an A4 sheet and then the A4 and
- the sheet of labels may be matched from the top and left margins. Any
- necessary adjustments can be easily made. Using this method the sheet
- feed system is used. This works very well with a Canon BJ130e printer.
- 5.9
- • Using Ovation’s spelling checker − It is important to realise that the
- checker must be started at the beginning of each Chapter when checking a
- document composed of more than one Chapter. After Ch.1, select the first
- page of Ch.2 and start the spell check again.
- 5.9
- This from Albert Kitchenside, Addlestone, Surrey:
- 5.9
- • Importing Text from PipeDream − The Ovation manual recommends
- importing PipeDream text by holding down <ctrl> while dragging the
- PipeDream text file into an Ovation frame. This has the effect of
- converting single line terminators into spaces to allow Ovation to
- reformat text within a frame. However, Albert finds that lines between
- paragraphs and headings are erroneously removed using this method. He
- has sent a Basic program which processes files correctly prior to import
- into Ovation. They are in the directory PD/OV on the monthly program
- disc.
- 5.9
- Impression
- 5.9
- Hints & Tips
- 5.9
- • More than 76 graphics per chapter − If you really want to have more
- than 76 graphics per Impression chapter, then use David Pilling’s ArcFS
- to store your document. You will then be able to store an unlimited
- number of graphic files, but you may find the access times a bit slow!
- Also, RISC-OS 2 users should be aware that a bug manifests itself after
- the 9358th file and filenames become confused. − Martin Sperl, Austria.
- 5.9
- • More than 76 fonts available at once − Continuing the ‘trick’ above,
- it is also possible to have an unlimited number of fonts available
- simultaneously by copying all files from your !Fonts directory into an
- ARCFS archive (plus all the extra fonts that you have always wanted to
- use), and then insert the following line (for example, assuming the new
- archive is called “Font”) into your !Boot file within the new archived
- font directory:
- 5.9
- Set Font$Path ARCFS#Font:$
- 5.9
- You can then cause the new set of fonts to be loaded automatically by
- inserting the following line within your system startup sequence (after
- ArcFS has been run!):
- 5.9
- OpenArchive SCSIdisc4::ARCFS#Font
- 5.9
- (You need to substitute the name for your own hard disc in place of
- SCSIdisc4.) Also, please note that to avoid a speed penalty in system
- startup, you do not have to use compression when creating the font
- archive and you will still save approximately 2k of disc storage per
- font. − MS
- 5.9
- • Viewing the screen without moving the cursor − Hold down <Shift> and
- <Ctrl> and then use the arrow keys. It changes your view on the
- document, left, right, up and down, without moving the cursor position.
- This is useful if you don’t want to have to change the magnification to
- something smaller, and thus lose the legibility of the screen font. −
- David Crofts, Bury St Edmunds
- 5.9
- • Large capitals in normal text − If you like having a large letter to
- add emphasis to the start of a paragraph but have found that the
- subsequent line is spaced too far beneath, there is a solution:
- 5.9
- Edit the Main Heading style (or create a new style), clicking on the
- 120% button, and then changing the Line Spacing box to the same as the
- Font Size box e.g. 24pt as default. The problem, as you can see above,
- is solved! − DC
- 5.9
- • Substitute for colour in documents − Try a little variety in Black and
- White. For a poster I did recently, I redefined some of the font colours
- in styles to grey palettes. This gives an interesting variety to the
- print density if you have a decent printer driver. − DC
- 5.9
- • Bullet point − <shift−backspace> is a short-cut to enter a • bullet in
- the text. − DC
- 5.9
- • Deleting styles from the menu − another of those hints that everyone
- else probably knew about all along...
- 5.9
- When you merge pieces from several old documents into one new text, this
- often means that your style menu becomes unnecessarily long.
- 5.9
- You can delete those unwanted styles in the “edit style” window, with
- one snag:
- 5.9
- If you click first onto a style in the style list, then on “edit style”,
- any attempt to delete that style will bring up an error message.
- 5.9
- This is because clicking into the style list automatically selects a
- style at the cursor position.
- 5.9
- Therefore, after you open the edit window, you must first deselect the
- style before it can be deleted! − Jochen Konietzko, Köln, Germany
- 5.9
- • Installing Impression on the A5000 − While helping a relative to setup
- his A5000/Impression system, we discovered that the installation program
- for the DTP installs the old Font Manager (v2.44) onto the !Fonts
- directory and all the old files associated with it. The ability of the
- new Font Manager (v2.49) to address multiple font directories is lost
- and Impression only ‘sees’ either the ROM fonts or the hard disc fonts.
- I suggest that anyone installing Impression is urged to remove the
- support files in the fonts directory after the installation process
- (leaving the actual fonts themselves behind) and reload the files within
- the fonts directory on the Apps 1 disc. Hopefully, Computer Concepts
- will alter the !Install program to take account of the changes in RISC-
- OS 3. − David Woods, Glasgow
- 5.9
- • More on Impression styles − Various readers have written with queries
- on styles called ‘table’ and ‘default’ that appear on the style menu
- with Impression version 2.16. These are not (in themselves) new program
- features or bugs − they are just extra styles stored as part of the
- !Default document stored in !Impress.Auto. The facilities provided by
- the ‘table’ style are all as documented in the very first Impression-2
- User Guide and are automatically set up for you if you import spread
- sheet data using the LoadCSV+ loader which comes with the business
- supplement. If the extra styles cause you problems or conflict with any
- of your own style names, all you have to do is open a blank document,
- edit the offending styles and click on the delete button to remove them
- and save the document with the name !Default in one of your own
- directories. Now quit Impression, open !Impress.Auto and move the
- “original” !Default document elsewhere and replace it with the one you
- just created. Now when you start Impression, the offending styles will
- not appear. You may like also to set up your most frequently used master
- pages and other styles using the same method. − Rob Sherratt,
- Felixstowe.
- 5.9
- • !Impression with !Compression − The message from Impression
- “Incompatible document version” means you are trying to load the adfs
- icon into the application rather than the compressed icon!! − Ned
- Abell, Kidderminster
-
- Hints and Tips
- 5.10
- • RISC-OS 3 & DOS filenames − DOS filenames (including extensions) are,
- in general, longer than the maximum length of a valid ADFS filename (10
- characters). It is not always possible to copy or move DOS files from
- hard disc partition or floppy discs directly to the ADFS.
- 5.10
- The !MultiFS utility, as supplied with the PC Emulator, solves this by
- allowing you to truncate the DOS filename while the translation process
- takes place. Another very useful option (which I often use when copying
- files from C programs) is to force !MultiFS to handle DOS extensions as
- directories (hierarchical).
- 5.10
- However, when the filetype of a DOS partition on your ADFS hard disc is
- set to ‘DOSdisc’, RISC-OS 3 will display a filer window for the
- partition when you try to open the folder, while !MultiFS just ignores
- it (i.e. no :C drive on the iconbar). This is all very nice but RISC-OS
- 3 doesn’t offer the nice name translation options mentioned above. To
- enable !MultiFS to display your DOS partitions just set their filetype
- to ‘data’ before you start !MultiFS. Remember to use the command line
- and not the filer menu, because the latter doesn’t allow you to change
- the filetype of DOSdiscs. I inserted three lines for each DOS partition
- in the !MultiFS !Run file to swap between ‘DOSdisc’ and ‘data’ type
- partitions when !MultiFS is started:
- 5.10
- *Filer_CloseDir <PCe$Drive_X>
- 5.10
- *SetType <PCe$Drive_X> Data
- 5.10
- directly after setting the system variable <PCe$ Drive_X>, and
- 5.10
- *SetType <PCe$Drive_X> DOSDisc
- 5.10
- at the end of the !Run file (although the comment tells us not to do
- so).
- 5.10
- Unfortunately, there are some bugs in !MultiFS: When you copy to a
- MultiFS filer window, you must ensure name translation is not set to
- hierarchical, otherwise you will end up with wildcards (‘?’) in
- filenames. When this happens, you must use DOS itself to delete the file
- because RISC-OS fails to wipe those objects. Another bug appears if you
- shut down your system after using !MultiFS. This results in an error
- report and a task manager crash. Paul Groot, Holland.
- 5.10
- • Sprite does not exist error − In answer to last month’s query in the
- Help! section, the ‘Sprite does not exist’ error only occurs with the
- old version of the printer drivers. It can be solved by simply using a
- later version of the printer driver e.g. v2.44 or later (as per
- Shareware Disc 17).
- 5.10
- Progammers take note: The error is cause by programs that print sprites
- using their names and not their pointers.
- 5.10
- Many thanks to all those who called − too numerous to mention!
- 5.10
- • High resolution PostScript? When printing sprites to !PrinterPS, the
- resulting output may be lower quality than, for example, a 600 dpi
- LaserDirect (using !ShowPage), even when printing at 300 dpi. A solution
- is to change the configuration file of !PrinterPS to make it think the
- resolution is higher e.g. change the ‘pxres’ and ‘pyres’ parameters to
- 600. J Thorn, Cardiff.
- 5.10
- • Problem with Font$Path − I recently experienced a problem with
- Impression 2.16 that took a long time to solve. The problem manifests
- itself by Impression, on starting, reporting an error ‘Not Found’. If
- you select OK to continue, the following error is reported ‘Illegal
- window handle’ and at this point you have to quit, because continuing
- results in the second error message. After about two hours of trying to
- find the problem − as the error messages are not particularly helpful −
- I discovered that the problem lay with Font$Path.
- 5.10
- I have two !Fonts directory, one with a small number of outline fonts
- and one with a large number. Also, my second font directory pulls in the
- fonts in my first directory by use of the Font$Path variable. I had
- moved the locations of these directories from an Apps folder to the root
- folder of my hard disc and this was causing the problems. The ‘Not
- Found’ error is caused by Impression not finding the first directory in
- the Font$Path and the second error is caused by the fact that a Font
- Menu can’t be created, as the specified directory does not exist.
- Indeed, most applications that support outline fonts will also give
- similar error messages.
- 5.10
- I have written a small program (on this month’s program disc) that will
- test the validity of Font$Path and a call to this program should be
- placed as the last line in any !Fonts.!Run file. A copy of FontTest will
- need to be copied into all !Fonts directories i.e.
- 5.10
- | !Run file for !Fonts (version 0.11, 10-May-89)
- 5.10
- |
- 5.10
- Iconsprites <Obey$Dir>.!Sprites
- 5.10
- |
- 5.10
- | Kill newer versions of Font Manager
- 5.10
- |
- 5.10
- RMKill FontManager
- 5.10
- RMKill SuperSample
- 5.10
- |
- 5.10
- RMEnsure FontManager 2.42 RMLoad <Obey$Dir>.Fonts
- 5.10
- RMEnsure SuperSample 0.04 RMLoad <Obey$Dir>.Super
- 5.10
- |
- 5.10
- SetMacro Font$Path adfs::
- 5.10
- HardDisc.$.!Fonts., <Font$Prefix>.
- 5.10
- Set Font$Prefix <Obey$Dir>
- 5.10
- |
- 5.10
- <Obey$Dir>.FontTest
- 5.10
- The program firstly checks that Font$Path exists and then reads the
- environment variable and checks its size. The length of this variable
- has to be greater than zero for it to point to a valid !Fonts directory.
- 5.10
- It then checks that every reference in Font$Path points to a valid
- directory. This is done by an OS_File call (line 680) which will return
- 2 if the filename given is a directory. If the file reference does not
- exist, an error will be generated and the Fonts directory !Run file
- needs to be modified.
- 5.10
- I have included an example of the problem on the program disc in the
- ‘Example’ directory. If you click on !Fonts2 an error will be generated
- as the Font$Path contains a reference to a file !Fonts3 (not a direc
- tory). Andrew Ferguson, London.
- 5.10
- • ArcFS and sticky backdrops − I have a backdrop application on my
- machine with all the sprites for the various applications held in an
- archive in order to save disc space. In order that the sprites can be
- seen, in theory they should be de-archived first. Thanks to my son,
- Neil, I have the following set of ArcFS commands in the !Run file of my
- !Boot application on the hard disc.
- 5.10
- RMEnsure ArcFS 0 RMLoad System: Modules.ArcFSMod
- 5.10
- RMEnsure ArcFS 0 Error I cannot find the module
- 5.10
- OpenArchive <Boot$Dir>.SpriteLib Sprites
- 5.10
- IconSprites ArcFS#Sprites:$. !Sprites
- 5.10
- CloseArchive Sprites
- 5.10
- C Walker, Wymondham.
- 5.10
- • Elite Commanders − On this month’s program disc, there is a program
- which allows you to edit Elite commander files. There are also three
- commander files with missions to accomplish. S Edwards, Stourbridge A
- 5.10
- 5.10
-
- Vector Hints − not in the manual!
- 5.10
- If the paths rotate the wrong way, you get...
- 5.10
- 5.10
- If the paths rotate the “right” way, you get...
- 5.10
- 5.10
- If the paths originate at the same point, you get...
- 5.10
- 5.10
- Remember, always have the same number of points in the paths. The
- interpolation in the first example was without reversing or flipping
- either of the paths.
- 5.10
- 5.10
- The paper margins are shown on the main window and the printer setup
- menu is used to deselect those pages you don’t need.
- 5.10
- The Eppler profile was “plotted” on an A0 page. The paper margins shown
- are A4 size.
- 5.10
-
- 5.10
- 5.10
-
-
-
- Impression Hints & Tips
- 5.10
- • Mailmerge in Impression: So it seems that there are no tips like old
- tips (Archive 3.9 p20). I claim that Charles Moir learned the trick he
- uses from me! Just one point to add, though. You have a choice between
- linking frames on a master page and not linking. If you link, the text
- flows through the frames on a page and then on to the first frame of the
- next page. This is probably convenient for small mailing lists without
- use of a database. If you do not link frames, text flows from page to
- page within the homologous frame. I recently helped to run a biggish
- scientific meeting which involved mail shots to about a thousand
- potential delegates and a full feedback of booking information to about
- 450. The database resided on a Mac, the most widely-used computer in the
- lab, and an output file was generated in <Tab> separated format, ported
- to a DOS disk, then to PipeDream. Individual columns (fields) or groups
- of columns were then extracted, linefeeds replaced by
- 5.10
- s, and the fields dropped into the right frames of the first page.
- Perfect registration was retained: the last person’s details did belong
- to him! All I had to do was to edit some of the less wise entries in the
- “comments” field of the database, which might have been taken as casting
- aspersions on the intelligence, rationality and financial or moral
- rectitude of some the participants! This method obviates the need to
- generate a report format for your database. You just extract the data
- you want for each of your frames and drop it in. Some fields get used
- twice, such as parts of names, once for the address (lined up with an
- envelope window), and once for the Dear... line.
- 5.10
- We also produced sheets of individualised meal tickets. The purpose here
- was to ensure that none of the three eating places got all the dele
- gates. We operated a “swap-shop” but needed to know who was swopping
- with whom. Named tickets solved this. In this case, I extracted the
- names once and dropped then into the first (unlinked) frame. To make a
- copy in the next frame (×450), <Ctrl-T> to mark all the text in the
- frame, 450 pages deep, <Ctrl-C> to copy it and then <Ctrl-V> to paste it
- into each frame. The printer who perforated the sheets was quite
- impressed by the product: he had never seen the like. He certainly had
- no idea how easy it was (save for feeding 450 sheets of card into the
- laser printer). Mike Hobart, Cambridge.
- 5.10
- Image setting − Another firm which does image setting is Stylus
- Publications Bureau of 98 Wilberforce Road, Finsbury Park, London N4
- 2SR. They also do colour slides and CibaChrom prints and overheads from
- Draw and Impression. However, they covered so much of their literature
- with gold leaf that I wonder if they are still trading! Mike Hobart,
- Cambridge.
- 5.10
-
- Hints and Tips
- 5.11
- • A5000 hard disc replacement − One drawback with the A5000 is that the
- 40M hard disc quickly fills up. Being in this position, I decided to
- replace mine with a larger one.
- 5.11
- Researching prices, I found that IDE drives bought direct from suppliers
- advertising in magazines such as Personal Computer World are much
- cheaper than the same drives advertised in the specialist Acorn
- magazines. Would any IDE drive work? A friend told me that Seagate IDE
- drives did not work correctly on A5000s but Connor (as already fitted to
- my A5000) and Maxtor (as fitted to another A5000 I know of) should be
- OK, as well as Quantum. Another friend recently bought and fitted an NEC
- drive to his A5000.
- 5.11
- I bought a 120M cached Quantum drive (the GM120AT). The drive, from SMC
- who advertise in PCW, arrived the day after I ordered it.
- 5.11
- The fitting was extremely simple. After a backup and power off I removed
- the cables, undid the four screws under the old drive (it is necessary
- to remove all the drive cables and lift out the metal bracket to which
- the drives are fastened) to release it and slotted in the new one − no
- problems! The drive was already low-level formatted and, although the
- hard disc formatter supplied with RISC-OS 3 didn’t recognise the disc
- shape, I just selected ‘Initialise’ and that was it. The drive worked a
- few seconds after switching on.
- 5.11
- In use, the drive feels very fast. I have measured a data transfer rate
- of 1060k/sec, compared to 800k/sec for the original drive and an average
- access time of 7ms(!) as compared to 18ms.
- 5.11
- Similar drives advertised specifically for the A5000 in the Acorn press
- are £50£100 more. Some of these include splitter cables, allowing the
- old drive to remain (there are already mounting holes for a second drive
- on the A5000, drilled in the case below the floppy disc drive). I intend
- to make my own in the next few days − it will cost about £10.
- 5.11
- So I would recommend anyone wishing to upgrade their A5000’s internal
- disc drive to do it themselves. Just obey the following rules:
- 5.11
- − Shop around for the best deal in the general computer and PC press.
- 5.11
- − Buy a low profile 3½“ AT IDE drive made by Quantum, Conner, Maxtor or
- NEC.
- 5.11
- − Make a backup of your old hard disc before commencing the changeover.
- 5.11
- − Use the RISC-OS 3 hard disc formatter to initialise the new disc, no
- need to format.
- 5.11
- − If you want to use both drives, Maplin Electronics sell everything
- you need to make the splitter cables.
- 5.11
- Perhaps a list of known A5000-friendly IDE drives could be compiled?
- Seán Kelly, Leighton Buzzard
- 5.11
- • Acorn SCSI card − If you buy the CDFS/FSCSI upgrade for the Acorn SCSI
- card, there is a link change to be made on the AKA31 version of the card
- but if you have one of the older AKA30 cards, it is slightly more
- complicated.
- 5.11
- The upgrade consists of putting a 27512 EPROM in place of the existing
- 27256 EPROM. To enable the extra address lines, hardware modifications
- are needed. Links 1, 3, 4 and 5 remain unchanged but link LK2 was open
- and has to be closed and link LK12 was closed and has to be opened. On
- the AKA31 boards, these changes can be made by moving a link but on the
- AKA31, this will involve cutting a track on LK12 and soldering a link on
- LK2. This should not be attempted unless you are competent to make such
- a modification and it will, in any case, invalidate the warranty on the
- board. Acorn dealers should do the modification for you although there
- may be a charge unless you buy the upgrade from them. Tudor Jones,
- Barnet.
- 5.11
- • Automatic kerning and RISC-OS 3 − The font manager has this facility.
- Currently it is only available with the standard ROM fonts (Trinity,
- etc.). Presumably, EFF will update their fonts to include kerning pairs.
- To use auto-kerning, simply set bit 9 of R2 in all calls to SYS
- “Font_Paint”.
- 5.11
- 10 REM >KernDemo
- 5.11
- 20 REM Example of automatic kerning
- 5.11
- 30 REM For RISC-OS 3 ROM fonts only
- 5.11
- 40 MODE 15:OFF
- 5.11
- 50 SYS “ColourTrans_SetFontColours”,0,0,
- 5.11
- &F0F00000,14
- 5.11
- 60 SYS “Font_FindFont”,,“Trinity. Medium”,50*16,50*16 TO hdl%
- 5.11
- 70 SYS “Font_SetFont”,hdl%
- 5.11
- 80 REM Kerning off first
- 5.11
- 90 SYS “Font_Paint”,,“WAWA no
- 5.11
- kerning here!“,%0000010000,10,500
- 5.11
- 100 REM Kerning on now
- 5.11
- 110 REM Set bit 9 in R2
- 5.11
- 120 SYS “Font_Paint”,,“WAWA this is kerned.”,%1000010000,10,300
- 5.11
- 130 SYS“Font_LoseFont”,hdl%
- 5.11
- The ease with which this can be done leads me to wonder why CC haven’t
- provided it as an option in Impression.
- 5.11
- To rotate fonts, set bit seven of R2 in “Font_ Paint” and pass the (draw
- style) transformation matrix in R7. Note that old style calls to
- “Font_StringWidth”, etc don’t take account of kerning or transformation.
- A new SWI “Font_ ScanString” is used to do this. Rob Davison, New
- Zealand
- 5.11
- • Basic 1.05 Bug − A really annoying bug exists in all versions of Basic
- except the floating point version supplied on the RISC-OS 3 application
- discs.
- 5.11
- Consider the following two statements (type them in if you feel like
- it.)
- 5.11
- a=210
- 5.11
- b=2.10*100
- 5.11
- These two variables should hold the same value. They seem to be the
- same, as you can check with:
- 5.11
- PRINT a,b
- 5.11
- IF a=b PRINT “SAME”
- 5.11
- etc.
- 5.11
- If you have RISC-OS 2 then both the above checks will say that they are
- the same. RISC-OS 3 Basic 1.05 will not print ‘SAME’ in the second test.
- The reason for this can be revealed by trying the following:
- 5.11
- PRINT INT(a),INT(b)
- 5.11
- PRINT STR$(a),STR$(b)
- 5.11
- These problems seem to occur because of the limited accuracy of floating
- point numbers in Basic. My program stored times at centisecond resolu
- tion internally and I wanted to scale these times to seconds for the
- user. I did a usertime=centitime/100 but ran into problems when I tried
- converting the usertime variable back into a string with STR$(usertime)
- 5.11
- My solution (and I’m not saying it’s a good one) is as follows:
- 5.11
- A short ARM code routine intercepts the WRCHV vector and stores
- characters printed in a buffer. The routine is linked in just before a
- PRINT realvar statement and killed off just afterwards. You can then
- extract the string from the buffer via normal means. An example program
- follows:
- 5.11
- 10 REM >string
- 5.11
- 20 REM provides a STR$( function
- 5.11
- 25 REM that avoids some floating
- 5.11
- 30 REM point problems in Basic
- 5.11
- 40 REM By Rob Davison, May 1992
- 5.11
- 50 REM Public Domain
- 5.11
- 60 REM
- 5.11
- 70 PROCassy
- 5.11
- 80 PRINT “First the old way -”
- 5.11
- 90 PRINT STR$(2.10*100)
- 5.11
- 100 PRINT “Should be ”;FNstr(2.10 *100)
- 5.11
- 110 PRINT’“Another example”
- 5.11
- 120 PRINT STR$(0.6)
- 5.11
- 130 PRINT “Should be ”;FNstr(0.6)
- 5.11
- 140 PRINT’“Bye now.”
- 5.11
- 150 END
- 5.11
- 160 DEFPROCassy
- 5.11
- 170 DIM code% &100
- 5.11
- 180 REM ’possy’ is a buffer. Can be scratch space but MUST
- 5.11
- be big enough.
- 5.11
- 190 DIM possy &100
- 5.11
- 200 FOR opt=0 TO 2 STEP2
- 5.11
- 210 P%=code%
- 5.11
- 220 [OPT opt
- 5.11
- 230 .intercept
- 5.11
- 240 STMFD R13!,{r0-r3 }
- 5.11
- 250 LDR R1,posaddr
- 5.11
- 260 STRB R0,[R1]
- 5.11
- 270 ADD R1,R1,#1
- 5.11
- 280 STR R1,posaddr
- 5.11
- 290 LDMFD R13!,{r0-r3 ,PC}
- 5.11
- 300 .posaddr EQUD possy
- 5.11
- 310 ]
- 5.11
- 320 NEXT
- 5.11
- 330 ENDPROC
- 5.11
- 340 REM this is the string function
- 5.11
- 350 DEFFNstr(number)
- 5.11
- 360 LOCAL ERROR
- 5.11
- 370 ON ERROR LOCAL SYS “XOS_Release” ,3,intercept,0:REPORT:PRINT ERL:END
- 5.11
- 380 !posaddr=possy:REM reset pointer to start of buffer
- 5.11
- 390 SYS “XOS_Claim”,3,intercept,0 :REM claim the vector
- 5.11
- 400 PRINT number
- 5.11
- 410 SYS “XOS_Release”,3,intercept,0 :REM and release it immediately
- 5.11
- 420 REM Extract the string and get rid of leading/trailing rubbish
- 5.11
- 430 str$=$possy:WHILE LEFT$(str$,1)= CHR$32:str$=RIGHT$(str$,
- 5.11
- LEN(str$)-1):ENDWHILE
- 5.11
- 440 WHILE ASC(RIGHT$(str$,1))<32: str$=LEFT$(str$,LEN(str$)-1)
- 5.11
- :ENDWHILE
- 5.11
- 450 =str$
- 5.11
- Rob Davison, New Zealand
- 5.11
- • Basic V rounding errors − Last month, (Archive 5.10 p19) Mr E. Hollox
- asked for help with the STR$ rounding. I hope that the following will
- help solve his problem. No actual specifics were given on his problem,
- so I’ve assumed that he’s working with monetary units (i.e. two decimal
- places). This may not be correct in this instance, but will probably be
- relevant to a large number of users and should provide Mr Hollox with a
- starting point for the solution he wants.
- 5.11
- In simple terms, the solution is to avoid decimals; to work only with
- integer variables. At first glance this may sound like an odd solution
- when a number of decimal places are required, but it’s not as strange as
- you may think.
- 5.11
- Firstly, the use of integer variables does not restrict you to the use
- of integer numbers − not when you are making use of STR$, anyway.
- 5.11
- Secondly, integers make for faster programs, as I’m sure everyone
- realises (unless they program an Atari ST in GFA or Atari Basic!)
- 5.11
- Thirdly, and more importantly, integers are far more accurate than real
- numbers due to the way in which they are stored. The method of storage
- does have a negative effect, however, in that your range of numbers is
- restricted − though the range available should be enough for most
- people’s needs. Page 21 of the Archimedes’ BBC Basic Guide details this.
- Remember that the more decimal places you require, the lower the range
- becomes.
- 5.11
- So, onto the solution to the problem...
- 5.11
- Your ‘real’ number must be stored as an integer 100 (for 2 dp users)
- times as big. Whenever any output is required, a routine must be used to
- convert it to a string and insert a decimal point at the correct place.
- For inputting, the reverse is required; the decimal point must be
- removed.
- 5.11
- The function FN_Int_To_Str carries out the decimalisation of your
- integer number:
- 5.11
- DEF FN_Int_To_Str(Int%)
- 5.11
- LOCAL Real$
- 5.11
- Int%=ABS(Int%)
- 5.11
- IF Int%<10 THEN Real$=
- 5.11
- “ 00”+STR$(Int%)
- 5.11
- IF Int%>=10 AND Int%<100 THEN Real$=“ 0”+STR$(Int%)
- 5.11
- IF Int%>=100 THEN Real$=RIGHT$
- 5.11
- (“ ”+STR$(Int%),9)
- 5.11
- Real$=LEFT$(Real$,7)+“.”+
- 5.11
- RIGHT$(Real$,2)
- 5.11
- =Real$
- 5.11
- You must call the function with string$=FN_Int_ To_Str(number%) where
- string$ is your variable to hold the decimalised string and number% is
- your variable holding the stored number. The routine returns the number
- as a string with two decimal places, and right justified (in a ten
- character field).
- 5.11
- The minus symbol ruins the simplicity of the routine, so an absolute
- value is taken of the number. Minus numbers aren’t difficult to cope
- with but, as they weren’t part of the problem....
- 5.11
- The function works by converting the integer number to a string and then
- adding spaces to the left in order to right align it. This is done by
- the three IF statements and, possibly, is the more complex part of the
- routine.
- 5.11
- In the first case, the number is lower than ten (i.e. 0 to 9) so the
- final figure will be of the form “ 0.0x” − hence six spaces and two
- zeros are added.
- 5.11
- In the second case, the number is in the range 10 to 99, so the figure
- will be “ 0.xx” − six spaces and one zero are added.
- 5.11
- In the third case, the number is over 100 (over 1.00). In this case,
- rather than add the correct number of spaces for its size (6 for 100 to
- 999, 5 for 1000 to 9999, etc.) we add the maximum required and truncate
- the resulting string to its rightmost nine characters.
- 5.11
- The result, in all three cases, is a right aligned integer number in a
- nine character string.
- 5.11
- Then we have the easy bit. The first seven characters of the string are
- taken, a decimal point added, then the last two digits − problem solved.
- 5.11
- The reverse function is even simpler:
- 5.11
- DEF FN_Str_To_Int(Real$)
- 5.11
- LOCAL Int%
- 5.11
- Real$=FN_FormatNumber(Real$)
- 5.11
- Int%=VAL(LEFT$(Real$,7))*100+
- 5.11
- VAL(RIGHT$(Real$,2))
- 5.11
- =Int%
- 5.11
- This function is called with number%=FN_Str_ To_Int(string$) where
- string$ is your variable containing the string and number% is the
- variable that will contain the integer number.
- 5.11
- The first thing the function does is to pass the string to another
- function in order to ensure it is of the correct format before convert
- ing it to a number. This is dealt with below.
- 5.11
- The function then calculates the integer part of the number (positions 1
- to 7 within the string), multiplies this by 100, and adds the fractional
- part of the number (positions 9 to 10 − after the decimal point.) The
- result, an integer number 100 times the real number, is returned to the
- calling routine.
- 5.11
- I could have simply used Int%=VAL(Real$)*100, making the routine much
- simpler. Then the inaccuracy of real numbers is risked once more. In
- between Real$ and Int%, the number is stored as real until it is
- multiplied by 100 and put in the integer variable. The method I’ve used
- circumvents this risk, but introduces another factor. The format of the
- number within the string must be correct. For the above conversion to
- work, this must be a two decimal place number, with the decimal point as
- the eighth character of the string. This is where the third formula
- comes in:-
- 5.11
- DEF FN_FormatNumber(Number$)
- 5.11
- LOCAL Length%,Point%
- 5.11
- Length%=LEN(Number$)
- 5.11
- Point%=INSTR(Number$,“.”)
- 5.11
- IF (Point%=Length%-1) AND
- 5.11
- (Point%>0) THEN Number$=Number$+“0”
- 5.11
- IF (Point%=Length%) AND (Point%>0) THEN Number$=Number$+“00”
- 5.11
- IF Length%=0 THEN Number$=“0”
- 5.11
- IF Point%=0 THEN Number$=Number$+ “.00”
- 5.11
- IF Point%=1 THEN Number$=“0”+ Number$
- 5.11
- Number$=RIGHT$(“ ”+Number$ ,10)
- 5.11
- =Number$
- 5.11
- This routine looks far more complicated than it actually is. The second
- routine, above, passes its Real$ to this function which formats it to
- two decimal places and ensures that the final string is 10 characters
- long.
- 5.11
- In this sense, it is a routine that can be used independently of the
- other two; by calling it with New$=FN_FormatNumber(Old$) where Old$ is
- the unformatted number and New$ is the result.
- 5.11
- It works by determining first the length of the string, then the
- position of the decimal point within the string. With a two decimal
- place number, the position of the point would be 2 less than the length
- of the string.
- 5.11
- The first IF statement adds a single zero if the position of the point
- is 1 less than the string’s length but only if the decimal point’s
- position is larger than zero − in which case the number is an integer
- and would have been accidentally multiplied by ten.
- 5.11
- The second IF adds a double zero if the point is at the end of the
- string. This is not done if the position of the point is zero, in which
- case the string is null and represents nothing.
- 5.11
- The third makes the string equal to “0” if it is found to be null.
- 5.11
- The fourth adds “.00” to the end of the string if there is no decimal
- point − i.e. if the number is an integer.
- 5.11
- The combination of the third and fourth IF’s result in the null string
- (“”) becoming “0.00”
- 5.11
- The fifth IF adds a zero to the string if the decimal point is at the
- very beginning − if the number is lower than one and is lacking the
- leading zero.
- 5.11
- Finally, before returning the result, a number of spaces are added to
- the left of the number which is then truncated to the rightmost ten
- characters. Hey presto, a nicely formatted number.
- 5.11
- The three routines are on the enclosed disk, in the form of a procedure
- library − details of how to use such are on page 92 of the BBC Basic
- Guide.
- 5.11
- Though the routines, as given, are for numbers with two decimal places −
- and with a field width of ten − it shouldn’t be too difficult to alter
- them for other requirements. Unfortunately, the higher the number of
- decimal places, the more (and more complicated) IF’s are required. It
- shouldn’t be too difficult to write routines that accept the number for
- conversion, together with the number of decimal places and the field
- width but, as I said before, this was just intended to provide Mr Hollox
- with a starting point for his solution. Vince Hudd, Soft Rock Software.
- 5.11
- • Bible Master with RISC-OS 3 − Having found a list of verses or cross
- references, it is possible to import the text into an Archimedes word
- processing (or DTP) package.
- 5.11
- (i) Load the PC text into !Edit and then
- 5.11
- (ii) Use the wildcard search and replace option searching for %[ $x76-
- xFF] (note that the square brackets start with a space) and replacing
- with a space.
- 5.11
- This will remove all the screen control characters and multiple spaces.
- The resulting text can then be saved and/or loaded into most word
- processors. S Wright, Basingstoke
- 5.11
- • Deskjet 500C and RISC-OS 3 − Recent contributors on the subject of the
- HP Deskjet 500C have tended to concentrate on the best type of paper to
- use. I will not attempt to further that debate, but rather recount my
- efforts to produce envelopes to match the quality of their contents.
- This turned out to be less straightforward than I had expected but I
- eventually succeeded. Most of my printing is from Impression Junior, so
- the following will apply to Impression II users and, although I am using
- an A5000, the RISC-OS 2 drivers are not crucially different.
- 5.11
- Using the Alter Pages sub-menu in Junior, create a custom page the same
- size as the envelope. A standard A4 envelope seems to be 218mm by 110mm.
- Create a suitable frame for the name and address and save the file as
- ‘envelope’. Load the !Printers application and create a custom page of
- the same size, also called ‘envelope’. I have used margins of 10mm all
- round which show up unambiguously in the Junior window. Click on <Save
- Settings> in the page set-up menu and <Save Choices> from the main menu.
- Go to the ‘configure’ option from the printer control menu, select the
- new ‘envelope’ option and click on OK. The printer margins will now be
- visible in the Junior window. Insert an envelope face down in the out-
- tray of the printer, sliding it into the guide slots provided and
- keeping the right hand edge against the edge of the tray. At this point,
- the HP manual is misleading. Do NOT press the envelope button on the
- printer. Simply press <Print> on the computer and then <Return>. The
- envelope will now be properly printed. If the envelope button on the
- printer has been pressed, the envelope will be passed disdainfully
- through the printer and the address will appear on the next sheet of
- paper from the in-tray.
- 5.11
- In the prison where I work, I have recently been involved in running an
- Anger Control Programme which required a couple of dozen overhead
- projector transparencies. These can be produced to a high standard on
- the 500C and, of course, in full colour. The transparencies used must be
- designed for use with inkjet printers since they require a special
- material to absorb the ink. There is, however, one major problem − the
- appropriate material is rather expensive. Hewlett Packard’s own
- transparencies cost about £75 inc. VAT for a box of 100. For me, this is
- too many and far too much money. Eventually, I found that NOBO produce a
- box of 50 for a slightly lower price per transparency and these should
- be available from a good office supplies firm. The inadequate black
- produced by the colour cartridge on the 500C is particularly noticeable
- on an OHP and I found that a more satisfactory result could be obtained
- by printing each transparency twice; once for black and once for the
- coloured areas. Registration seems not to be a problem for the bold text
- and graphics which are the norm for this kind of presentation. This
- technique also saved an awful lot of expensive, coloured ink.
- 5.11
- Incidentally, the UNDO facility on RISC-OS3 !Draw(or in !DrawPlus) was a
- considerable help in creating the colour ‘separations’ for this process.
- I could delete either the black or the coloured areas of the image
- before printing and restore them by pressing <F8>. A Trout, Lancs.
- 5.11
- • Deskjet 500 DIP switches − For those just buying Deskjet 500 printers,
- it may be worth knowing that the default setting of the DIP switches is
- not too helpful. Try the following settings instead...
- 5.11
- Bank A Bank B
- 5.11
- 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7
- 5.11
- ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯
- 5.11
- This seems to work OK − it sets things like skip-over-perforation OFF
- and A4 paper instead of some US size. Steve Hutchinson, Gloucester.
- 5.11
- • Dragging solid sprites − RISC-OS 3 has, built in, the ability to solid
- drag sprites from save dialog boxes. The solid drag option is stored in
- CMOS in a ‘hidden’ location on bit 1 of byte 28. The following commands
- will set bit 1 without disturbing anything else in this byte.
- 5.11
- *Basic
- 5.11
- SYS “OS_Byte”,161,28 TO ,,v%
- 5.11
- v%=v% OR %10
- 5.11
- SYS “OS_Byte”,162,28,v%
- 5.11
- Now try saving a file from Draw/Edit/Paint, etc.
- 5.11
- (Comparing the A5000 to an A440/1+30Mhz ARM3, the 440 runs at about the
- same speed as the A5000 in mode 12, but at about 1/3 of the speed in
- mode 28.) Rob Davison, New Zealand
- 5.11
- • Personalised application templates − Many users may not have realised
- that it is often possible to alter the windows and templates used by an
- application. Most programmers use the FormEd application or one of its
- derivatives to create a Template file which contains the window
- definitions used by the program and this can often be seen in the
- application directory normally called, not surprisingly, Templates.
- 5.11
- If you have a copy of FormEd, which is supplied with all Acorn’s
- compilers but is also available from most PD libraries (Shareware Disc
- 20, Ed), you can load these templates and alter them to suit your own
- ideas and preferences. What you must not do is change the number of any
- of the icons or the program won’t behave properly. You must also be
- careful if you create any extra icons that they don’t overlay any
- existing button icons since the Wimp doesn’t report clicks on icons
- which are hidden behind others with a higher number.
- 5.11
- As an illustration, I have included a set of modified windows for Edit.
- Since some of these now use sprites there is also a sprite file and you
- must insert a line to load these in the !Run file or the windows will
- look rather bare. For simplicity, I have included a !Run file with the
- extra line in it.
- 5.11
- Rename your existing !Run and Templates files something else (in case
- you don’t like mine) and copy the files !Run, Templates and sprites2
- into the !Edit application directory. Now when you run Edit the new
- windows will be used.
- 5.11
- Note that the main text window is also changed. When Edit opens a new
- file the main text window opens in whatever form the template was
- created. Just load the Templates file into FormEd and drag the text
- window around the screen and resize it until you are satisfied. Then
- save the templates. Next time you open an Edit window, that is the size
- and position it will assume.
- 5.11
- I don’t claim that these examples are particularly brilliant but they
- are certainly an improvement on the original and will help to show how
- you can customise standard programs. David Holden, Sydenham.
- 5.11
- • Pinboard problems − Several people (well, at least two anyway!) appear
- to have had problems with Pinboard running under RISC-OS 3. It would
- seem that the Pinboard module is automatically UNPLUGged following an
- exit from the desktop. One solution involves using an alias to re-
- initialise the Pinboard. If you have a desktop !Boot file then, before
- the Pinboard command (if there is one), insert something like the
- following:
- 5.11
- Set Alias$NewDesktop %RMreinit Pinboard |m %Desktop |m
- 5.11
- Obviously, in place of NewDesktop you can use any name that you like
- (note that abbreviations still work so, in this case, you could use New.
- to carry this out.) If you wish to re-run the !Boot file on exiting
- from command line mode, add -F !Boot after the %Desktop command. If you
- do not have a desktop !Boot file, use the Desktop Boot function from the
- Acorn menu on the iconbar.
- 5.11
- From now on, to get back from the command line (after using the Exit
- option), type New. (or your appropriate alias) rather than Desktop.
- 5.11
- Simon Moy, Norwich Computer Services.
- 5.11
- • Truncated filenames and RISC-OS 3 − It took me a long time to discover
- that you type *Configure Truncate off to stop the O.S. automatically
- truncating filenames when saving and therefore (possibly) overwriting an
- old version of a file which I wanted to keep! A
- 5.11
-
- Hints and Tips
- 5.12
- • Free Space − (Ref to Archive 5.11 p21) − The call to check the amount
- of free space on a disc is ADFS_FreeSpace. On entry, R0 points to the
- disc specifier and on exit R0 contains the free space and R1 contains
- the size of the largest object that can be created. E.g.
- 5.12
- SYS“ADFS_FreeSpace”,“:0” to free%,largest%
- 5.12
- Change the ADFS to RamFS, SCSIFS or whatever you’re using.
- 5.12
- • Free space on hard discs − For some time I had been concerned by the
- apparent discrepancy between the figures returned by COUNT and FREE for
- the space used by files on my SCSI discs. I was aware that COUNT only
- counts the actual files and that FREE counts all the space used but I
- still felt uneasy and my discs seemed to fill up alarmingly quickly.
- 5.12
- ADFS floppies use 2k for every directory and there is an initial 4k
- overhead for the map on E format discs. My impression was that the same
- amount of space would be used for each directory in all Filecore
- systems, including SCSI, but that the map would take more space
- depending on the size of the disc.
- 5.12
- So the first thing I did was to estimate the number of directories on my
- 120M disc. I make full use of the directory structure to organise my
- data, not to any great depth but with some width. RISC-OS encourages
- this and, of course, applications are directories too. I reckoned there
- were well over 1000 directories on the disc, but at 2k per directory,
- this did not account for the difference.
- 5.12
- With a little experiment of adding a directory and looking for the
- change in free space, I found that a directory was taking a staggering
- 28k! This was where the space was going, but why?
- 5.12
- My Oak SCSI card is managed by their SCSIForm program which allows some
- flexibility in defining the format of the disc. Having backed-up, I did
- some experimenting with the parameters.
- 5.12
- I changed the sector size, but the minimum value for the 120M disc was
- 512 bytes and, for a 42M removable was 256 bytes. I imagine the lowest
- possible value of 128 bytes is only for small discs. Anyway, the changes
- I made had only very small effects on space or disc transfer times. The
- default is 512 bytes per sector, so I left it at that.
- 5.12
- Next I changed the file allocation size. This defaults to 2k on the
- large disc and 1k on the other. The minimum is 256 bytes. The larger
- values are chosen, I believe, to speed up transfer times to large files
- on larger discs. I did not think this parameter would have an effect on
- the structure, but look at the table below. The results were impressive.
- For a loss of transfer time of less than 5% I was gaining a saving on
- structure of 7 times! There were similar results for the smaller disc.
- 5.12
- File Alloc’n (bytes) 2048
- 1024 512 256
- 5.12
- Map Space (k) 57 47
- 68.5 124
- 5.12
- Dir’y Space (k each) 28 15
- 7.5 4
- 5.12
- Mode 0 (k/sec) 1959 1864
- 1864 1864
- 5.12
- Mode 21 (k/sec) 994 955
- 955 955
- 5.12
- I have not delved any further into why more than 2k per directory is
- taken in SCSI but the figures suggest 14 blocks are used: 13 are <256
- bytes and the other is 512-768 bytes.
- 5.12
- When I settled on a file allocation size of 256 bytes, I recovered about
- 30M of extra space on the larger disc − about £200 worth, perhaps. Some
- of this saving comes from taking much less space for the multitude of
- small !Run,!Boot and !Sprites files.
- 5.12
- The only other make of SCSI of card I have access to is a Cumana one in
- school, running in a fileserver for 600 users. This too has 1000+
- directories. The Cumana SCSIManager program only offers formatting with
- default values, so I changed the format using my Oak card and made
- similar impressive savings. The disc runs happily with the Cumana card,
- as you would expect, but will not dismount. This is no penalty with
- self-parking heads.
- 5.12
- I then found an old ADFS hard drive and did the same check, finding that
- a new directory takes 12k. RAMFS takes a straight 2k. I would be
- interested to know if the same problem applies to IDE discs and what
- formatting is possible with other SCSI cards. Steve Drain, Portland. A
- 5.12
-
-
-
-
- Impression Hints & Tips
- 5.12
- Ŷ• Problems with version 2.17 − If you are having problems with version
- 2.17 − such as the machine hanging up when you select large areas of
- text − don’t blame Impression! Basically, what is happening is that CC
- have implemented message-passing via the Wimp for their thesaurus and
- these messages are rather large. This is a perfectly valid thing to do
- under Acorn’s RISC-OS programming guidelines but not all filing systems
- have been written to allow for such large messages and they end up over-
- writing areas of memory − hence the crashes. Filing system versions
- known to be a problem are:
- 5.12
- Oak SCSI version 1.11
- 5.12
- Ian Copestake IDE version 1.13,
- 5.12
- Serial Port IDE version 1.01, March ’91
- 5.12
- CC say... “If your Archimedes gives problems, contact your Acorn
- supplier or the appropriate company. Please do not contact Computer
- Concepts − these problems are not caused by Impression but by the filing
- system.”
- 5.12
- The Oak SCSI filer 1.11 has been replaced by version 1.16 but this ‘new’
- version (actually two years old!) is available through Archive as an
- upgrade for £12 inc VAT.
- 5.12
- The ICS filer 1.13 can be swapped for version 1.14 as a free EPROM
- exchange from ICS. They also have a completely re-written IDE filer
- (version 2) which is available from them for £15 +VAT. The customer
- returns the old EPROM afterwards.
- 5.12
- The Serial Port filer 1.01 can be replaced with 1.02 as a free upgrade −
- in this case, just send the floppy disc back to The Serial Port and they
- will replace it.
- 5.12
- • Using borders − From David Wooldridge comes one of those tips that is
- obvious to the initiated but might be new to some users. When choosing a
- border in the Alter Frame window (view mode), don’t forget you can see
- the various borders by pointing at the white border in the window and
- pressing menu. A border picker window opens, allowing you to select from
- all the available borders. This tip is in the manual but, as we all
- know, not everyone reads manuals − own up, please, if this is new to
- you! (Me for one! Ed.)
- 5.12
-
-
-
- The Readers Write!
- 5.12
- • Laser Jet printing with RISC-OS3 − Gerald Fitton (of Pipeline fame!)
- has experienced a problem when using RISC-OS 3, !Printers, Laser Jet II
- and Impression. He has found that documents in the portrait format print
- 7 mm out of position on the vertical axis and are offset 5mm to the
- right. This occurs even when the page borders are set to 0 mm. If he
- increases the latter figure, the print out is further out of position.
- As Gerald says, ‘What I need is a minus value for my borders. Help!’ Has
- anyone else come across this particular problem?
- 5.12
- • Keeping track of Draw and Sprite files − In Archive 5.9 p37 Steve
- Hutchinson was asking advice on keeping track of his Draw and sprite
- files and was recommended two viewing applications. There is also an
- easy hardcopy method namely !PicList which was on the Acorn User October
- 1991 disc after being upgraded from the May version. The application
- makes a set of sprite “pages” containing any Draw or sprite pictures
- that are dropped into it. The pictures are displayed in a grid and are
- labelled with their name/path above them. The application is easy to use
- from the iconbar having options to:
- 5.12
- • Set up the size of the “page” (defaults to print size if a driver is
- loaded),
- 5.12
- • Set the number of columns and rows required − depending on the
- required detail of each picture,
- 5.12
- • Set the screen mode for the resultant “pages”,
- 5.12
- • Choose the path/name format to name each picture.
- 5.12
- You can drop directories onto the icon and several pages are generated.
- The pages can be stepped through to view and saved to make a hardcopy of
- each page. Alan Wilburn, Hartlepool.
- 5.12
- • Auto destruct! − In the Hints and Tips section of the June edition of
- Archive, there was a mention of possible problems with the auto-save
- facility of Impression under the title “Auto-destruct!”. Version 2.16
- (and 2.17) of Impression does not appear to be as dangerous in this
- respect. If the auto-save facility is turned on but with the “With
- prompt” switch left off, a prompt will still appear on-screen before the
- first time the document is auto-saved.
- 5.12
- This also occurs the first time the document is auto-saved after it has
- been reloaded. It is mentioned in the Impression 2.15 release notes on
- pages 1 and 3.
- 5.12
- Still on the subject of Impression, I have two problems that readers of
- Archive may be interested in:
- 5.12
- Spelling checker − If you check and replace a misspelled word by using
- <Ctrl-W> to invoke the spelling checker, this appears to work correctly
- except that if you have typed nothing after the word, it also has the
- effect of <Ctrl-B> and returns you to basestyle. Obviously the solution
- is to always type at least a space after the word before using <Ctrl-W>.
- 5.12
- PrintBJ (the extension module to print draft text) − This makes a
- reasonable attempt at interpreting styles as far as different fonts and
- font sizes are concerned but seems unable to cope with rulers or effects
- that control the position of the text on the page. Tabs it gets
- completely wrong, right aligned text is centred, centred text is centred
- but using a page width about three quarters of the actual width. This is
- using the Canon BJ-10e. I have phoned Computer Concepts who suggested I
- wrote enclosing example documents both printed and on disc. This I did
- several months ago and have not received a reply. Has anyone else
- experienced these problems or indeed found a solution? Nick Edgar,
- Doncaster.
- 5.12
- I can understand Nick’s problems and only print out in graphics format.
- My method of working for proofing documents is always to print at a
- lower resolution − and hence achieve a quicker print out. Users of the
- Deskjet 500 have the option of using the draft mode on the printer for
- this purpose and leaving the resolution set on the driver unchanged.
-
- Hints and Tips
- 6.1
- • Alt characters − On upgrading from RISC-OS 2 to RISC-OS 3.1, I thought
- I had lost my ‘×’ character. I eventually found that it had moved from
- <alt-,> to <shift-alt-,>. (Even on RISC-OS 3.0 on the A5000 it is still
- <alt-,>.) So I investigated all the possible ALTernatives(!). Here are
- all the ALT characters I found. They are laid out in QWERTY order but
- where no special character appeared, the key is not included in the
- list.
- 6.1
- key ALT shift ALT
- ` ¬ °
- 1 ¹ ¡
- 2 ²
- 3 ³
- 4 ¼
- 5 ½
- 6 ¾
- 9 ±
- r ¶ ®
- y ¥
- o ø Ø
- p þ Þ
- \ ¦
- a æ Æ
- s ß §
- d ð Ð
- f ª
- z «
- x »
- c ¢ ©
- m µ º
- , ×
- . ÷
- / ¿
- 6.1
- I think that is all there is, but if anyone finds any more, let us know.
- Ed.
- 6.1
- • Annual service kit − In answer to Paul’s comment about hard drives in
- Archive 5.12, p.8, I’d like to sing the praises of the Alarm application
- (on one of the support disks or in ROM on RISC-OS 3). (You will see the
- link if you read on! Ed)
- 6.1
- I, too, would have forgotten completely about the annual replacement of
- filter and batteries, but for this application (which, thanks to my Boot
- file, always resides on the iconbar): When my machine was a year old,
- Alarm reminded me of this fact in no uncertain terms, (‘urgent’ alarm,
- repeating every hour), so there was very little chance of overlooking
- this necessary bit of maintenance. Jochen Konietzko, Köln, Germany.
- 6.1
- • Apple Laser Writer II NT − Here is some information for anyone wanting
- to make a cable link from an Archimedes to an Apple Laser Writer II NT.
- The connections are as follows...
- 6.1
- Archimedes LaserWriter II NT
- Pin Pin
- 2 (RXD) −−−− 3 (TXD)
- 3 (TXD) −−−− 2 (RXD)
- 5 (0V) −−−− 7 (0V)
- 6 (DSR) −−−− 20 (DTR)
- The Archimedes pins DCD (1), DTR (4) and CTS (8) are all linked
- together.
- 6.1
- When using a RISC-OS printer driver you should choose the Serial
- connection with 9600 baud rate, 8 data bits, no parity and 1 stop bit.
- XOn/XOff protocol should also be used.
- 6.1
- • DDE Pascal − Some would-be users of DDE !Pascal (on Careware 17) will
- have discovered that it won’t function in Computer Concepts’ Compressed
- Filing System (CFS), where it generates the error ‘Special field not
- allowed in filesystem prefix to OS_CLI’. This means that the command
- line interpreter, which is invoked to run the Pascal tool, objects to
- some pathname which begins with the prefix ‘CFS#’. The offending
- pathname turns out to be the <Pascal$Dir>.Pascal, as assigned into
- Alias$Pascal by the !Run file with the apparent function of enabling the
- compiler to be located in the application directory. The remedy is to
- comment out the line which assigns Alias$Pascal and move the compiler
- (i.e. <Pascal$Dir>.Pascal) to your library. This brings the configura
- tion into line with that of the C compiler and other DDE tools and
- causes ‘*Pascal’ commands to be serviced by default from the current
- library without any explicit reference to a filesystem. Mike Kinghan,
- Oxford
- 6.1
- • DDE Pascal (Careware 17) − The release of the public-domain Norcroft
- Pascal compiler for the Archimedes is potentially extremely useful,
- since, although ISO-Pascal is very good, it does not interface well with
- the operating system. More seriously, programs compiled with ISO-Pascal
- do not interface well either.
- 6.1
- The Norcroft system is easy to use and install and does everything that
- is claimed of it. Unfortunately, users should be aware of some problems,
- especially since Acorn obviously does not wish to maintain the product.
- 6.1
- I have some extra severe tests for Pascal, which I have used to test the
- compiler. This shows that the compiler has some errors in the evaluation
- of set expressions: the following program failed (printing True rather
- than False):
- 6.1
- {4 5 6 4 0 3 3000 }
- {the parameters from the full test which failed. }
- program test (output);
- const
- ten = 10;
- var
- i: 1..ten;
- begin
- i := 11; (compilation error here?)
- i := ten + 1; (compilation error here?)
- writeln(‘Error not detected‘) ;
- end.
- 6.1
- The first error is caught at compile-time by almost all Pascal com
- pilers, including ISO-Pascal. The second error is caught by almost all
- compilers at run-time, and a few at compile-time.
- 6.1
- When using the quit option in the Pascal menu, the system still allows
- command line usage of Norcroft Pascal, although the icon is removed.
- 6.1
- The final significant problem is that programs written in ISO-Pascal do
- not necessarily compile without the ISO option being set. This is
- annoying, since many programs will wish to use some extensions. I don’t
- know of any other Pascal compiler for which the extension option means
- less (in some cases). Brian Wichmann, NPL.
- 6.1
- • Directory size − Regarding the issue on directory sizes, etc in the
- hints & tips section, there are a few other points...
- 6.1
- RISC-OS 2 has some problems with certain combinations of disk size and
- allocation unit, so beware. The problem usually causes the machine to
- hang when entering a directory. I have only experienced this using large
- allocation units on small disks.
- 6.1
- The fact that a new dir appears to take 38Kb isn’t the whole story, as I
- believe that there is a facility for small files within a directory to
- use some of the ‘wasted’ space. However, if you tend to have lots of
- directories with few files, space does tend to get wasted.
- 6.1
- The best solution as far as both disk, space and speed is concerned is
- to use D format, which uses the ‘correct’ amount of space for direc
- tories and hardly anything for the map. (Remember that there are two
- copies of the map in E format.) D format disks are also MUCH easier to
- recover files from if the root directory or map gets corrupted and files
- can never be fragmented (which slows down access). The only disadvantage
- is the occasional need to compact but I find this a small price to pay.
- I would only recommend E format for non-technical users.
- 6.1
- The same issues will apply to all FireCore based filling systems such as
- IDE, etc. Mike Harrison
- 6.1
- • Impression/Squirrel − CC’s !Importer (also in their Business Supple
- ment) is supplied by Digital Services with Squirrel. Here is some
- experience that might help other people.
- 6.1
- Using Squirrel, I created a database with 22 fields. I then tried to
- mail merge the resultant report CSV file using !Importer. I got an error
- message saying ‘Subscript out of range (Code 6150).’ After some hours of
- fiddling, I eventually found that if I reduced the number of fields in
- the CSV file to 16, !Importer worked OK. Nick Horn, Thetford.
- 6.1
- • Second internal hard drive in an A410/1 − I fitted a 40Mb ST506 hard
- drive to my A410, thinking it would be more than adequate. However, with
- the acquisition of the PC Emulator and the formation of a 10Mb DOS
- partition, I was rapidly running out of room. I subsequently purchased a
- second hand 20Mb ST506 drive, which I decided to fit internally rather
- than buy a p.s.u., case and fan. I thought of making some mounting
- brackets but, having seen an advert for a SPACE kit from PRES which
- included brackets and all the leads, I changed my mind and went for
- that. Price was £38.72 inc VAT. The work involved was to:
- 6.1
- 1) Remove top two podule blanking plates.
- 6.1
- 2) Fit metal brackets to drive using screws supplied.
- 6.1
- 3) Remove the 34 way data cable and replace it with the one supplied,
- connecting it to the existing drive and mother board (SK11), leaving
- spare connector to connect to the second drive later.
- 6.1
- 4) Connect the supplied 20 way control cable to the spare connector
- (SK8) on the mother board, leaving the other end to be connected to the
- second drive later.
- 6.1
- 5) Remove the power cable from the psu and existing drive and replace
- it with the supplied cable, leaving the spare connector for the second
- drive.
- 6.1
- 6) Lead all three cables to the back of the computer and through the
- space left by removing the blanking plates and connect them to the
- second drive.
- 6.1
- 7) Attach the blanking plates to the metal brackets on the second
- drive using nuts & bolts supplied.
- 6.1
- 8) Ensure second drive is set to ‘1’ by changing the appropriate DIP
- switch or DS-Jumper.
- 6.1
- 9) Insert the drive through the back of computer until the front of
- the brackets rests on backplane connectors (psu side) and the blanking
- plates line up with the back of the computer. Screw in blanking plate
- screws.
- 6.1
- 10) Once computer is up and running it will have to be configured for
- a second hard drive.
- 6.1
- The work was very easy to carry out and the instructions supplied were
- very good. The drive then has to be formatted using Acorn’s HFORM
- program. The program had to be modified to do the ‘slow’ formatting by
- altering the following lines:
- 6.1
- 7530 REMmed out
- 7540 REMmed out
- 7550 REM removed
- 7560 REM remove
- 6.1
- Once this was done, the drive formatted with no problems and, using the
- PC Emulator’s configure program, I created a 19 Mb DOS partition.
- 6.1
- I would recommend this solution of gaining extra drive capacity if you
- have access to a cheap drive and do not mind losing the space of two
- half width podules. Chris Bass, Grimsby
- 6.1
- • Mah Jong from CIS − If you have recently purchased the Mah Jong game
- from Cambridge International Software, you may wish to check for the
- presence of a ‘benign’ virus. This can be done by double-clicking on the
- !MahJong game while holding the <shift> key down. Choose the ‘Display >
- Full Info’ option on the filer window. If the MemAlloc module is larger
- that 2608 bytes then your copy is infected and you should contact CIS
- directly at Unit 2a, Essex Road, London N1 3QP or telephone
- 071−226−3340.
- 6.1
- • Measuring free space − I would like to say a big thank you to all the
- people who wrote in response to my plea for help in finding a way of
- checking, from within a program, whether there is enough space for a
- file before it is saved.
- 6.1
- The most ingenious suggestion was to use the following commands:
- 6.1
- *FREE {ram:ccc }
- X=OPENUP(“RAM:CCC”)
- REPEAT B=BGET#X: UNTIL B=ASC“=”
- REPEAT B=BGET#X
- IF B>47 AND B<58 B$=B$+CHR$B
- UNTIL B=ASC“B”
- *SHUT
- 6.1
- to put the free space in the variable B$.
- 6.1
- Some people pointed me to ‘ADFS_FreeSpace’ (also RamFS_FreeSpace,
- SCSIFS_FreeSpace, etc.) which can be used with syntax such as:
- 6.1
- SYS “ADFS_FreeSpace”,Drive$ TO Free%,Largest%.
- 6.1
- The same information was given on page 7 of the Archive 5.12.
- 6.1
- Although all these answers have been very helpful, they have also taught
- me a salutary lesson, namely that you have to be very precise when
- describing your problem: because, although they have answered the
- question (and told me things that I did not know) they haven’t actually
- told me what I needed to know!
- 6.1
- What I actually want is a filing system independent way of finding out
- whether a file with any given path name can be saved. For instance, if
- the user of my program indicates (by dragging an icon to a filer window
- or typing into a save box) that he wants to save a file with the path
- name ‘XXXFS::$....Filename’ and if my program knows how long the file
- will be, I want my program to be able to find out whether the file will
- fit in the specified place, without knowing in advance whether ‘XXXFS’
- stands for ADFS or CFS or SCSIFS or RamFS or whatever. The program also
- has to work if a path is not specified and the file is simply to be
- saved to the CSD.
- 6.1
- A couple of correspondents have pointed out that there is an SWI called
- ‘FileCore_FreeSpace’ (on page 1021 of the PRM). However, in order to use
- this you have to know the ‘private word’ of the filing system in
- question and, so far as I can see, this SWI can only therefore be called
- by a filing system module, which is not much use to a mere mortal
- programmer!
- 6.1
- I still, therefore, believe that the only generalised way of doing what
- I want is to use syntax like the following :
- 6.1
- X%=OPENOUT(Filename$)
- SYS “XOS_Args”,6,X%,Length% TO ,,Allocated%
- IF Allocated% >= Length% THEN ... go ahead and save it.
- 6.1
- This is hardly elegant but it seems to work.
- 6.1
- I understand that RISC-OS 3 will include the generalised SWI that I
- want. However, this will not be much use, of course, in a program that
- is designed to work in RISC-OS 2 as well! Hugh Eagle, Horsham
- 6.1
- • Formatting numbers (continued) − Over the last two months, I have been
- following the correspondence on Basic’s number formatting ability (PRINT
- and STR$) with some interest. Has the increased size and complexity of
- RISC-OS caused the oversight of some of the slightly esoteric but very
- powerful features of BBC Basic? One such feature is the @% variable in
- Basic. The @% variable controls the format of the PRINT and STR$
- functions and much of last month’s discussions could have been settled
- by altering the @% variable so that STR$ was formatted in the same way
- as PRINT.
- 6.1
- @% is fully discussed in the manuals that accompany the computer under
- the PRINT command but I will try to give some useful pointers here. As
- with all Basic integers, the @% variable is four bytes long. When Byte 4
- (the left-most byte) is zero Basic ignores @% when using the STR$
- function (this is the default and the source of last month’s problems)
- otherwise STR$ is formatted exactly the same as PRINT. Byte 3 allows the
- choice of three different formatting types: 0 − general (the default), 1
- − exponent and 2 − fixed. Byte 2 specifies the number of digits printed
- and Byte 1 gives the print field width when you use comma separators in
- PRINT.
- 6.1
- Our problem arises from two areas: the way computers represent numbers
- and the value of @%. At this point, I think it is necessary to take an
- aside into the nature of real number representation in computers so, if
- you are only interested in how to circumvent Basic’s printing problems,
- skip to the end of this article.
- 6.1
- Common advice to novice programmers is not to use real variables unless
- you really have to. Speed and storage reasons are normally given for
- simplicity but a far more important reason is that real numbers are not
- exact in the same way as integers and they must be treated differently.
- A classic example is the problem in mathematics of dealing with two
- representations of, say, the number one: which could be 1.000... or
- 0.999.... As far as we are concerned both are the same but if we ask a
- computer whether or not they are equal, we find not. This is due to no
- fault of the computer or the programmer but the acceptance that
- computers cannot store the infinite expressions for real numbers but
- must approximate to a number of decimal places and so springs up the
- subject of numerical analysis.
- 6.1
- How then do we equate real numbers? Well, we must choose a value for a
- zero! That is a number where any number smaller than it we consider to
- be ‘as good as zero’. An example for Basic is 10−7, any smaller and the
- errors in calculations become significant. So when we want to check
- equality of two numbers a and b we use the expression (ABS(ab) < 1E-7).
- If this is true then the two numbers are ‘as good as equal’. (ABS is
- used since we are only interested in the magnitude of the difference
- between the numbers.)
- 6.1
- The second important point with numbers stored in computers is that they
- are stored in binary. Yes, of course, you all knew that but fewer people
- are aware how computers store fractions. Much like in decimal when we
- have a decimal point, computers use a binary point where the digits to
- the right of the point have place values 1/2, 1/4, 1/8, etc. In decimal
- there is a problem of representing fractions like 1/3 or 1/6 because the
- prime factors of 3 or 6 are not divisible by the factors of 10 (2, 5) so
- you get infinite decimal expansions for them. In binary, the problem is
- greater because there is only one factor of two (unlike two factors of
- ten) so even more numbers have infinite representations (this is why
- some people advocate using base 12 instead of base 10 for day to day
- life − it makes mental arithmetic so much easier). This means that
- simple decimal numbers like 0.6 have an infinite expansion in binary.
- 6.1
- What has all this got to do with printing numbers in Basic? Well, an
- appreciation of what is going on when you store numbers will help you
- avoid the pitfalls that last month’s contributors highlighted. Now that
- we are aware that innocuous looking numbers like 2.1 can have infinite
- expansions when stored in binary, it becomes clear that 2.1 × 10 may not
- equal 21 but, perhaps, 20.99999999!
- 6.1
- Is there anything that we can do about this? Yes, indeed there is. We
- can tell Basic to round off the number to nine decimal places instead of
- attempting to print 10 which extends the precision beyond the accuracy
- (in general Basic is accurate to nine decimal places unless you are
- using the floating point version where I believe 19 is the limit but not
- having a RISC-OS 3...).
- 6.1
- Now we come back to @%. At default, @% specifies 9 decimal places but it
- only affects PRINT and not STR$ which defaults to ten. To alter this,
- all we need to do is set the byte 4 flag in @% to one. Try PRINT
- STR$(0.6) and then set @% = &0100090A and try again (by the way, &90A is
- the default value for @% whereas STR$ uses &A0A if byte 4 is unset).
- 6.1
- If we want to print money then we can set @% to two decimal places by
- &0002020A (remember to set byte 4 to one if you want to use STR$). This
- has the added bonus of allowing you to print the number rounded off but
- still maintain the extra places for further calculations.
- 6.1
- I hope you can now see the power and simplicity of using @%. My only
- warning is that if you wish to use several formats in your program, then
- either save the previous @% or declare it as a local variable. Emmet
- Spier, Guildford.
- 6.1
- This subject seems to have opened up quite a debate. Emmet has agreed to
- edit any comments regarding rounding errors for us and so if your wish
- to add to the debate you should write to him directly. Emmet Spier, 6
- Parklands Place, Guildford, Surrey GU1 2PS.
- 6.1
- • PC keyboards for A4 − A word of warning − not all PC type keyboards
- work on the A4 (or all PCs for that matter!), so take the A4 to the shop
- and try before you buy! Reasonable ones can be had for about £40 at some
- computer fairs. Note that non PS/2 type keyboards (with the 5 pin DIN
- plug) can be used with an adaptor or by changing the plug. Mike
- Harrison
- 6.1
- • RISC-OS 3 DOS partitions − Because DOS filenames (including exten
- sions) are in general longer than the maximum length of a valid ADFS
- filename (10), it is not always possible to copy or move DOS files from
- hard or floppy discs directly to the ADFS.
- 6.1
- The !MultiFS utility as supplied with the PC Emulator solves this by
- allowing you to truncate the DOS filename while the translation process
- takes place. Another very useful option (which I often use when copying
- files from C programs) is to force !MultiFS to handle DOS extensions as
- (hierarchical) directories.
- 6.1
- However, when the filetype of a DOS partition on your ADFS hard disc is
- set to ‘DOSdisc’, RISC-OS 3 will display a filer window for the
- partition when you try to open the folder, while !MultiFS just ignores
- it (i.e. no :C drive on the iconbar.) This is all very nice but RISC-OS
- 3 doesn’t offer the nice name translation options mentioned above. To
- enable !MultiFS to display your DOS partitions, just set their filetype
- to ‘data’ before you start !MultiFS. Remember to use the command line
- and not the filer menu because the latter doesn’t allow you to change
- the the filetype of DOSdiscs. I inserted 3 lines for each DOS partition
- in the !MultiFS !Run file to swap between ‘DOSdisc’ and ‘data’ type
- partitions when !MultiFS is started:
- 6.1
- *Filer_CloseDir <PCe$Drive_X>
- 6.1
- *SetType <PCe$Drive_X> Data
- 6.1
- directly after setting the system variable <PCe$Drive_X>, and
- 6.1
- *SetType <PCe$Drive_X> DOSDisc
- 6.1
- at the end of the !Run file (although the comment tells us not to do
- so).
- 6.1
- Unfortunately, there are some bugs in !MultiFS: When you copy to a
- MultiFS filer window, you must ensure name translation is not set to
- hierarchical or you will end up with wildcards (‘?’) in filenames. When
- this happens you must use DOS itself to delete the file because RISC-OS
- fails to wipe those objects. Another bug appears if you shut down your
- system after using !MultiFS. This results in an error report and a task
- manager crash. Paul Groot, Holland.
- 6.1
- • Saloon Cars Deluxe − If you are having problems running Saloon Cars
- Deluxe, it may be worth knowing that you must have the Font Manager
- installed for it to run.
- 6.1
- • Shareware 44 (Fortran Friends) update − There is a small bug in the
- !Fortran77. DesktopF77 program. Line 1400 should read:
- 6.1
- 1400 IF INSTR(b$,“rror”) THEN E%+=1
- 6.1
- This allows errors in the code generator part of the compiler to be
- detected. Kate Crennell, Oxon.
- 6.1
- • Zelanites cheat − The following program provides a cheat for
- Zelanites. It stops the number of lives decreasing below 9. Steve
- Edwards, Stourbridge.
- 10 REM >:0.$.hints.zelcheat
- 20 REM Archive hints & tips section
- 30 REM (c) S.EDWARDS 1992
- 40 REM infinite lives for Zelanites
- 50 REM ****************************
- 60 REM * When you have run the program the game should *
- 70 REM * then be run as normal. This time when you die *
- 80 REM * you will have not gone down one life but up *
- 90 REM * to NINE lives, which stay with you for ever. *
- 100 REM * *
- 110 REM ****************************
- 120 :
- 130 DIM store% &400
- 140 MODE 0
- 150 PROCDisc_op
- 160 PRINT‘********FINISHED********’
- 170 PRINT
- 180 PRINT‘****NOW GET BLASTING****’
- 190 END
- 200 :
- 210 DEF PROCDisc_op
- 220 PRINT ‘Put !ZELANITE disc into drive 0’
- 230 PRINT ‘ and press a key.’
- 240 A=GET
- 250 PRINT ‘Loading sector information’
- 260 SYS ‘ADFS_DiscOp’,0,1,&50400, store%,&400
- 270 store%?&67=&6A:REM Original code =&2A
- 280 INPUT‘Are you are ready to make the change ?’;A$
- 290 IF LEFT$(A$,1)=‘N’ OR LEFT$(A$,1)=‘n’ THEN END
- 300 IF LEFT$(A$,1)=‘Y’ OR LEFT$(A$,1)=‘y’ THEN
- 310 PRINT‘Saving cheat back to disk’
- 320 SYS ‘ADFS_DiscOp’,0,2,&50400, store%,&400
- 330 ENDIF
- 340 ENDPROC
-
- Hints and Tips
- 6.2
- • 3D icons for RISC-OS 3.1 − Here are some tips for those of you who
- upgraded from RISC-OS 3.00 to RISC-OS 3.10 (and for anyone else who is
- interested in a fancy desktop).
- 6.2
- If you have used the fancy 3D-like window borders on your A5000, you
- will probably have noticed that, with RISC-OS 3.1, the borders will not
- install properly. This is because RISC-OS 3.0 programs used the
- ‘IconSprites’ command to install the wimp’s tool sprites (i.e. borders),
- while in RISC-OS 3.1 there is a new command to install user defined
- window tools:
- 6.2
- *ToolSprites <spritefile>
- 6.2
- This is, I think, because the border sprites are now held in a separate
- sprite area for faster redrawing. So, the only thing you have to do is
- to change the command ‘IconSprites’ into ‘ToolSprites’ at the appropri
- ate places in your files. Note that you can also re-install the default
- window tools by entering ‘ToolSprites’ on the command line.
- 6.2
- The small utility I use to install enhanced icons (a modified version of
- !SetIcons), shows another minor modification of RISC-OS 3.1. It is now
- assumed that some icons have the same dimension. For example, some
- border elements are painted from two sets of sprites − one that is
- normally used and one that is used when you select this particular
- border element. If corresponding sprites within these sets are different
- in size, you will see that some parts of the elements are not painted
- when you select them. To overcome this problem, you can adjust the sizes
- with !Paint.
- 6.2
- For those programmers who liked the Impression-style dialogue boxes,
- there exists a module called ‘Interface’. This module takes care of most
- of the code to generate fancy icon borders. RISC-OS 3.0 has some in-
- built extras to achieve the same thing without the need to insert extra
- lines of code into your program. (The programmer only has to define some
- validation strings which contain the information to generate the desired
- effect.) However, because the validation string command syntax was
- essentially the same as the syntax used by the Interface module, there
- were sometimes problems when using the Interface module with RISC-OS
- 3.0.
- 6.2
- After I installed the new RISC-OS 3.1 ROMs, I was surprised to see that
- my own (RISC-OS 3.0!) programs didn’t have fancy borders any more. After
- some experimenting with the validation strings, I discovered that the
- command syntax is now different from the syntax used by the Interface
- module. To be more specific, RISC-OS 3.1 makes use of ‘r<int><colour>’
- (where <int> is a number between 0 and 8 and <colour> is a WIMP colour
- number), instead of ‘b<int>, ...’. This modification probably has been
- made to overcome the incompatibility problems with the Interface module.
- The simplicity with which you can use this prompts a question: Why don’t
- the ROM based applications like Draw use this facility? I guess this is
- just another ‘Acorn-mystery’. Paul Groot, Holland.
- 6.2
- • Editing paper sizes in RISC-OS 3 − If attempts are made to edit the
- paper sizes contained within the standard RISC-OS 3 printer driver
- files, it will be found that any changes made to the Text Margins
- section will revert to 0 when the window is closed, even if Save
- Settings is selected. This is due to a bug, but can be rectified by
- editing the paper files directly.
- 6.2
- Editing any of the paper sizes results in a new file called PaperRW
- being generated in the Printers application directory. This file can be
- modified using Edit. Make sure that the Printers application is not
- running (i.e. Choose Quit from the iconbar menu if it is). Find the
- !Printers application (normally in the App1 directory) and open it using
- Shift-double-click. Open the file called PaperRW by Shift-double-
- clicking on it. Scroll down the file until you find the name of the
- paper setting which you defined or modified. It will look something like
- ’pn: Fanfold A4’. At the bottom of the set of numbers relevant to this
- paper setting are five values (called tb, tt, tl, tr, th) which
- correspond to the text bottom, top, left and right margins and the
- height (in lines) respectively. Alter the values from 0 to your required
- numbers and save the file. When you re-run the Printers application,
- your paper sizes will be rectified. Simon Moy, N.C.S.
- 6.2
- • How NOT to treat your SCSI hard disk − A few weeks ago I found a new
- way to get rid of all those files that clogged my external hard disk(!)
- 6.2
- Every verify I did showed up one questionable sector, so I decided to
- map it out as defective. The *Defect command applies only to ADFS, so I
- browsed through the SCSI disk’s manual and, finally, found what I was
- looking for (or so I thought).
- 6.2
- Morley supply their hard disks with a formatter application which,
- amongst other things, can add defects to a list. There is a warning that
- a low level format would result in total loss of data but, later in the
- description, an option was mentioned to decide whether or not to do the
- low level format while running the application.
- 6.2
- This led me to believe that clicking on ‘No’ would keep my data intact −
- alas, I was wrong!
- 6.2
- The Morley hotline informed me that I had in fact done a high level
- format which wipes out the information about the addresses for each
- file. As the passage in the manual could be misunderstood, they very
- kindly offered to restore my data for me free of charge (just p&p).
- (Great service!!)
- 6.2
- However, it was not to be: I forgot to inform them that I use Computer
- Concepts’ Compression on most of my files and this, I was told later,
- encodes the files in such a way that retrieval becomes virtually
- impossible.
- 6.2
- I learned two things from my self-made disaster:
- 6.2
- 1) Even the excellent Compression is not proof against all kinds of
- fools.
- 6.2
- 2) 800 Kb floppy disks are just not good enough as a backup medium! I
- shudder at the thought that I will have to feed 112 floppies into my
- machine, once the hard disk returns from England.
- 6.2
- As a consequence, for future backups I have ordered a 20Mb floptical
- drive from Morley, to be sent as soon as it is able to read and write
- Acorn floppy formats. Jochen Konietzko, Köln, Germany.
- 6.2
- • Humour in RISC-OS 3.1! − You will be pleased to hear that humour still
- exists within Acorn. If you load ‘Resources:$.Resources.
- Switcher.Templates’ into the template editor, FormEd, you get an
- interesting message. Knut Folmo, Norway
- 6.2
- • Loading multiple Impression documents − If you want to load a number
- of Impression files at once, just select them (with rubber band dragging
- on RISC-OS 3, if you like) and drag them down onto the Impression icon
- on the iconbar.
- 6.2
- • Memory size from Basic − In Basic, there is no specific way to find
- out how much physical memory is fitted to the host machine. However, it
- can be calculated using a SWI call as in this example:
- 6.2
- 10 SYS “OS_ReadMemMapInfo” TO PageSize%, NumOfPages%
- 6.2
- 20 TotalMemory% = PageSize% * NumOfPages%
- 6.2
- 30 REM This value is in bytes
- 6.2
- 40 Total% = TotalMemory% / 2^20
- 6.2
- 50 REM This value is in Mbytes
- 6.2
- Simon Moy, N.C.S.
- 6.2
- • More RISC-OS 3.1 Alt Characters The current A5000 Welcome Guide
- mentions some additional Alt-key characters. These alt-keys don’t
- actually produce a character themselves, they just set up an accent, so
- that the following character is changed into an accented character. This
- only happens if the accent is suitable for the following character.
- 6.2
- For example to type an ‘e’ with an acute accent (é): Whilst holding down
- the Alt key, press and release <[>. Release <alt> and the press and
- release <E>. Thus:-
- 6.2
- Alt-[ E é
- Alt-] E è
- Alt-; E ë
- Alt-’ E ê
- Alt-, N ñ
- Alt-. A å
- Alt-/ C ç
- 6.2
- The only other Alt-key character missing from the previous list is Alt-
- hyphen which gives character 173, which, in the Acorn fonts, looks
- exactly like a normal hyphen, but is often different in fonts from other
- suppliers. Simon Moy, N.C.S.
- 6.2
- • MS-DOS 5, PC Emulators and the Archimedes keyboard − (This excerpt
- from a reply to an Archive reader’s letter may prove useful to others.)
- The cursor keys do not work correctly with the PC emulators due to a
- bug. They will not work properly with either QBasic or DOS Edit. They
- can be used to move around the text but, to select text, you must use
- the cursor and editing keys which are mapped on the numeric keypad (as
- on a normal PC AT-style keyboard). Therefore, when inside the editors,
- make sure that NumLock is off and use <shift> and the following keys (on
- the numeric keypad):
- 6.2
- 6.3
- 6.2
- AMOUSE.COM is fully compatible with MS-DOS 5. However, as with all PCs,
- you cannot display the mouse pointer at the DOS prompt. Also, not all PC
- programs support the mouse. However, if the AMOUSE command is present in
- your AUTOEXEC.BAT file and the program you want to use accepts a mouse
- (e.g. QBasic, EDIT and DOSSHELL), you must start the appropriate
- application first and then select Connect Mouse (by pressing <menu> over
- the PC emulator window) if you are running the emulator from a window in
- the RISC-OS desktop. If you are using the emulator under Single Task
- mode, the mouse should automatically connect itself. (If the mouse does
- not connect itself automatically when running the emulator under Single
- Task mode, then this is a further bug in the PC emulator.) Typing AMOUSE
- at the DOS prompt or selecting Connect Mouse from the window’s menu will
- not display the DOS mouse pointer, as DOS itself does not support a
- mouse. If you do this, the RISC-OS pointer will disappear (because
- control has passed to DOS) and you must press <menu> on the mouse to
- relinquish control from the emulator back to RISC-OS. Simon Moy, N.C.S.
- 6.2
- • Pound sign problems − The pound sign has always been a difficult
- character to print and display on the screen. To make the pound sign
- appear in the PC Emulator, press and hold <alt> and type 156 on the
- numeric keypad. When you release <alt>, the pound sign will appear.
- 6.2
- If you are printing a file as text (i.e. from Edit or PipeDream for
- instance) then the pound sign will print as a hash (#). You can reverse
- this by using a hash symbol in your text in place of the pound sign,
- although it is important that your printer is set up with a UK character
- set − see the DIP switch settings for your specific printer. If you are
- printing a file produced using bitmaps (e.g. Impression) then the pound
- sign will print correctly anyway. Basically, any program which defaults
- to printing on the screen using the system font will print characters as
- plain text − there is a section on plain and fancy text in the RISC-OS
- User Guide.
- 6.2
- By the way, does anybody know why you can’t access the pound sign
- (either from the keyboard or <alt-156>) in a Task Window under RISC-OS
- 3.0? Simon Moy, N.C.S.
- 6.2
- • RISC-OS 3.1: A310 − There is a problem when fitting RISC-OS 3.1 to
- A310 machines fitted with the Arcram 434 ARM3 + 4Mb upgrade from Watford
- Electronics. It causes the machine to hang on power-up. Replacement PAL
- chips and more information are available from Watford Electronics on
- 0923−37774 (Fax: 33642). Simon Moy, N.C.S.
- 6.2
- • RISC-OS 3.1: SCSI drives − There may be problems accessing the SCSI
- drive using the HCCS Hard Card interface with RISC-OS 3.1. Contact HCCS
- for details. Simon Moy, N.C.S.
- 6.2
- • Rotated fonts and sprites using Laser Direct − With the advent of
- RISC-OS 3.1, there are problems with printing rotated text and graphics
- using the currently existing RISC-OS 2 printer drivers such as that
- supplied with Laser Direct. To overcome the problem, transform the text
- or sprite to any angle in Draw, make sure that the item is selected and
- choose the Convert to Path option from the Select submenu. This will
- allow rotated text or sprites to be printed correctly using the RISC-OS
- 2 printer driver supplied with Laser Direct. This does not mean that it
- will work with all RISC-OS 2 printer drivers − you will have to
- experiment! Steve Costin, Ramsgate.
- 6.2
- • TV interference − In response to Chris Bass’ enquiry in Archive 6.1
- p36, here is a general procedure which covers almost all cases:
- 6.2
- 1. Does the computer interfere with your own TV, when it is as close/
- closer to your computer than your neighbour’s TV is? (On either side of
- a party wall they could be less than 1 m apart!)
- 6.2
- If YES, go to 2. If NO, go to 3.
- 6.2
- 2. Does the interference disappear when the computer is 3 m or more from
- the TV?
- 6.2
- If YES, agree with your neighbour to move your computer and his TV so
- that they are more than 3 m apart. If moving them apart is inconvenient,
- you could try sticking cooking foil on to the party wall (under the wall
- covering, eventually). You need a minimum of about 2 m by 2 m, and there
- is usually no point in earthing it, but you could try the effect.
- 6.2
- In some types of building, your computer might be too close to your
- neighbour’s TV aerial, in which case moving them apart is the best bet.
- 6.2
- If NO, the computer may be faulty. Many dealers may not be able to cope
- with this type of fault, so you, or your dealer, should contact Acorn
- with a FULL description of the problem.
- 6.2
- 3. If NO to question 1, your neighbour’s TV has either an inadequate
- aerial or inadequate ‘immunity’. (This is a technical term describing
- ‘resistance to electromagnetic disturbances’.) An inadequate aerial
- usually also gives ‘fuzzy’ pictures and/or ghosts (outlines of images
- displaced sideways). The aerial itself may be OK; the fault may be in
- the downlead. They tend to fill up with water and deteriorate after a
- time. A new aerial (and downlead) is quite inexpensive, even a large
- one. If the aerial is not the problem, the manufacturer of the receiver
- should be contacted, either directly or through the TV dealer or rental
- company, regarding the probable lack of immunity of the TV. Manufac
- turers (of TVs and computers) are quite concerned about this at present,
- because of an EC Directive on the subject.
- 6.2
- 4. If all else fails, the DTI Radio Investigation Service will look at
- the problem and give advice but there is a fee of about £21 involved.
- The Service has much information and experience of such problems and
- their cures, including private information about know immunity problems.
- For Lincolnshire, the address is (or was) PO Box 2500, Nottingham NG8
- 3SS. The head office is at Waterloo Bridge House, Waterloo Road, London
- SE1 8UA. A book, ‘How to improve Television and Radio Reception’ is/was
- available from the Service, and gives a good deal of information on
- interference problems (some of it technical). John Woodgate, Rayleigh,
- Essex. A
-
-
-
- Hints, Tips and Letters
- 6.2
- A combined selection this month, since the hints and tips stem from
- letters I have received recently.
- 6.2
- • Key Window / Impression problem: I am grateful to Jack Evans of
- Bristol for pointing out this problem to me, particularly since I am the
- author of the program in question. Key Window (available on Shareware 47
- – see review in Archive 6.1 p31) is a program which displays keystrips
- in a window, and the strips update themselves as you move the caret
- between tasks.
- 6.2
- The problem is that if you have Key Window running at the same time as
- you are editing a document in Impression which is set to auto-save, the
- auto-save doesn’t work. You can still save manually of course, but this
- is something which is easy to forget about. The solution is easily
- effected, if not very satisfactory. You have to de-select ‘Sense caret’
- in Key Window’s Options menu. Unfortunately, this will prevent Key
- Window from changing keystrips as you move between applications. If you
- use Impression’s auto-save a lot, and want to disable Key Window’s
- interference permanently, you can edit the !Run file to disable the
- ‘sense caret’ option via a system variable. Full instructions for doing
- this are provided in the file.
- 6.2
- Users may be interested to know that I have just started work on version
- 2 of Key Window, and am re-writing it from scratch to make it a much
- better program with enhanced facilities. I intend to approach Computer
- Concepts about the problem, to see if a satisfactory solution can be
- found. Other programs with auto-save facilities, such as Ovation and
- Vector, do not appear to suffer from the problem.
- 6.2
- • Protecting Impression files: Charles Martin from the Isle of Wight
- has been having a few problems with some Impression ‘template’ files –
- empty documents with standard formats. He wants to make them Delete- and
- Write-protected via the filer’s Access menu but has found that setting
- the files (which are, of course, in the form of application directories)
- to ‘locked’ does not protect their contents. Similarly, opening the
- directories and choosing ‘Select all’ does not have the desired effect.
- 6.2
- This situation actually applies to all applications and directories, not
- just Impression files. However, under RISC-OS 3, the Access menu is
- completely redesigned and works much better, so the problem only really
- affects RISC-OS 2 users. The difficulty arises because of the distinc
- tion that the filer makes between directories (be they normal
- directories or application directories) and actual files. This is one of
- those ‘features’ of RISC-OS 2 which needs a bit of care.
- 6.2
- Under RISC-OS 3, if you select a directory or application directory
- (such as an Impression file) and set it to ‘Protected’, the filer will
- protect all the files within it, no matter how many sub-directories
- there are. Under RISC-OS 2, however, it will only set the status of the
- directory itself. You therefore need to open the directory, select all
- the files within it and set their attributes via the Access menu.
- However, there is a further complication: if the selection of files
- contains any directories, the process will be upset − the directories
- need to be deselected first.
- 6.2
- Under RISC-OS 2, to protect an Impression file, you would need to open
- it up, choose ‘Select all’ from the filer menu, deselect any directories
- in the selection by clicking on them with <adjust>, and finally set all
- the files’ attributes via the Access menu. Then repeat the process for
- each of the directories which you had deselected (‘MasterChap’,
- ‘Chapter1’, etc). There is simply no point in protecting the directories
- themselves, since it is impossible to delete a directory which contains
- locked files, and locking a directory (under RISC-OS 2) does not affect
- the access status of the files within it in any case.
- 6.2
- All in all, it’s probably easiest to upgrade to RISC-OS 3!
- 6.2
- • Applause for Ovation: A highly enthusiastic letter about Ovation has
- been received from Tony Greenfield of Birmingham. He has the following
- to say:
- 6.2
- “[Ovation] does just what I had hoped for and more. The manual is
- brilliant! It is a work book on DTP, quite good enough as an introduc
- tion to the subject to beginners and as an encouraging tutorial for more
- experienced users. I found it much more useful than First Impression. I
- have learnt much about Impression II and much about how a manual should
- be presented. I wonder if the reason that there are not many hints and
- tips on using Ovation [in Archive] is because the user manual is so
- clear? (It may also have something to do with the relative numbers of
- people using the two packages. Ed.) There are many features which I like
- about the program. In fact, there is not very much missing – I wonder
- if, for most people, Impression is not really required − after all, it’s
- more expensive than Ovation. I’m sure that, for schools who have yet to
- purchase a DTP package, Ovation would be a must better buy than
- Impression, for many reasons − perhaps most of all for the ease of use,
- and I guess it would be easier to learn than Impression.”
- 6.2
- Tony goes on to list various features which he likes in Ovation, notably
- its wide range of effects such as word underline, small caps and
- tracking, and its system of basing font styles on one family name, so
- that changing the base family will also alter the italic and bold fonts.
- 6.2
- I would certainly agree with Tony’s comments about the manual, which is
- indeed a very helpful document, although I think Impression is the
- easier of the two to learn, as Ovation has a quite unwieldy menu
- structure. Perhaps the quality of the manual really is the reason why we
- haven’t received more tips on using the program from readers. Anyway,
- things are set to change from this month in Archive, with the advent of
- Maurice Edmundson’s dedicated Ovation column. (We also have a new DTP
- editor, Ray Dawson, whose first column will appear next month.) For
- further comments about Ovation, see my Ovation/Impression comparison
- article which follows on page 33. A
-
- Hints and Tips
- 6.3
- • A3010 joystick ports − several A3010s have been returned to Acorn with
- complaints of faulty joystick ports. They are not faulty. The A3010 is
- the first Archimedes to have a built-in digital (i.e. Atari-style)
- joystick port and because of this, many of the games already available
- do not cater for digital joysticks. This is a fairly major problem and
- hopefully someone will soon produce some sort of patch (either hardware
- or software) which allows digital joysticks to be used in place of the
- more common proportional joysticks (such as the Voltmace Delta). Until
- then, two sources of information about digital joystick interfaces are
- The Leading Edge and Beebug.
- 6.3
- • A4 Portable Guide − on page 31 of this guide, the pin-out diagram for
- the AKF18 monitor is slightly incorrect. Pins 13 and 14 (horizontal and
- vertical sync) have been reversed.
- 6.3
- • Artworks & Impression dongles − There appears to be a clash between
- these two dongles when using an A5000 and a JP-150: printouts appear
- with spurious information across them. Computer Concepts say that the
- problem only occurs between A5000s and JP-150 printers and add that they
- are looking into the problem.
- 6.3
- • Banner-making − I have just seen, in Archive 6.1, a review of a
- program called Banner.
- 6.3
- If you own a printer which takes fanfold paper, there is an alternative
- way for making banners. (By the way, fanfold paper does not need
- sprocket holes if you are careful about the line-up and select friction
- feed, so normal paper rolls can be used. For example, the Colourjet 132
- users can print banners in this way.)
- 6.3
- The print margins on all the Acorn printer drivers are user-definable
- and as long as you want to print out banners shorter in length than A0,
- extending the appropriate print margin and setting Draw to A0 landscape
- will normally allow satisfactory banners to be produced. (Changing the
- print margins is described in the manuals; change only the height of the
- page to whatever you wish and leave the width alone.) If print margins
- are shown, keeping to these will ensure that none of the picture is
- lost.
- 6.3
- The additional flexibility of Draw, especially in conjunction with the
- drawfile utilities (!FontFX, !DrawBender, etc) would, in my opinion,
- offset most of the ease of use of Banner, except perhaps in primary
- schools.
- 6.3
- Note that the printer should not be set to skip perforations, or
- problems will result, but I have had no difficulty in printing banners
- on an Epson LX and even a Colourjet 132 in this manner.
- 6.3
- For those requiring longer banners, !Draw½ and, I believe, !Draw+
- (Careware 13) allow an option to set the work area to the print margins,
- which will then enable them to use the longer pages which the printer
- driver can handle but, again, for a banner you should set the page to be
- much taller than normal in the printer driver and edit the display in
- landscape mode. I have used this to produce banners several metres long.
- 6.3
- I am sure Banner is a very useful package and I have not attempted to
- use it but I would be unwilling to spend £15 when the same effect seems
- to be available from the software supplied with the machine and
- Careware. Andrew Garrard, Cambridge.
- 6.3
- • Banner-making again − Recently I needed to print up a large banner for
- a meeting, and wondered how I should go about it. Of course, I could
- always have bought ‘Banner’ for £15 but, for a once off job, I thought
- this just a touch extravagant. This set me thinking... Impression can
- define master pages as big as you like... hmm... This is what I did, and
- it works!
- 6.3
- 1. Open a new document in Impression
- 6.3
- 2. Create a new Master Page (Custom Job) − Width: 1000 and Depth: 210
- 6.3
- 3. Return to the document and set the Master Page in Alter Chapter
- 6.3
- 4. Set the Font Size to 500
- 6.3
- 5. Type in “Hello World!” or whatever
- 6.3
- 6. Set the printer driver page size to − Height: 1000 and Width: 210
- 6.3
- 7. Set the Impression Print Dialogue to print sideways, and fire away
- 6.3
- Warning − this is not ‘printer ribbon friendly’... in fact, it is
- positively ‘printer ribbon hostile’! Philip Lardner, Co. Wicklow,
- Ireland.
- 6.3
- • CC BJ10ex Turbo Driver − It seems that the only method of using the
- Turbo Driver with the PC Emulator is to load !BJ10e and quit it again
- before loading the emulator. Chris McIntosh, Blackheath.
- 6.3
- • Programming the Serial Port (Vertical Twist) graphics board − On the
- monthly program disc is a series of programs which, in themselves, do
- nothing much. However, they show how the 65000 colour modes can be
- accessed from Basic and C.
- 6.3
- They mainly show how to draw lines, circles and fill shapes. Most do not
- need any interaction. Fill requires five mouse selections to create to
- outline − the sixth should be inside the box.
- 6.3
- Lines − just move the mouse and press <select> to change colour.
- 6.3
- 15_120ASM converts mode 15/21 sprites to mode 120. Copy the sprite image
- to the floppy’s root directory before running. It’s not very fast. Jim
- Bailey, Sunderland.
- 6.3
- • Squirrel update − Digital Services have upgraded Squirrel from version
- 1.07. Currently, Squirrel is being supplied with the original V1.07 disc
- and manual and a V1.20 upgrade disc. A new manual is due out soon and
- Digital Services will send all existing Squirrel owners this new copy
- providing they have registered.
- 6.3
- • VIDC enhancer & RISC-OS 3.10 − There can be problems using very early
- Atomwide VIDC enhancer hardware with RISC-OS 3.10. It appears that if
- the enhancer is software switched, RISC-OS 3.10 will automatically
- switch it on which prevents the computer from starting up correctly. To
- solve the problem, you have two choices: (a) at the command line, type
- *FX 162,&BC,&80 and switch your machine off, then on again, to check
- that the command has worked (full details are on page 14 in the RISC OS
- 3.10 release note) or (b) return the enhancer hardware to Atomwide with
- £5 and they will modify the hardware so that it works correctly.
- 6.3
- • Vision Digitiser. As I concluded in my review of the monochrome
- version of this product (Archive 5.12.42), the package is amazing value
- for money. However, the supplied software is a little basic. Further
- more, Robert Golightly at HCCS tells me that the software module
- (promised in the !ReadMe file) to provide * commands and SWIs for users
- to write their own programs has a priority below that of the 512-line
- upgrade, and is not likely to appear in the near future.
- 6.3
- All is not lost, for the software – at least the monochrome version – is
- written using Basic’s in-line assembler, and so can be modified by the
- careful user.
- 6.3
- For example, as it stands, the !Vision application always demands 450Kb
- of memory. For those with 1M machines, or those who like to multi-task
- it with other memory-demanding applications, it would be useful to be
- able to reduce this. Examination of the code reveals that a 320Kb screen
- buffer is reserved, whatever screen mode you are using. 320Kb will be
- needed for mode 21, but only 160Kb for modes 15 and 20, and 80Kb for
- mode 12. If you haven’t a multi-sync monitor and want to save 160Kb of
- memory when using !Vision, change the following lines of a copy of
- !RUNIMAGE, having first checked that the first line of the !Run file
- shows that you have Version 1.0, dated March 1992.
- 6.3
- 130 DIM M% 210000
- 6.3
- 8650 BNE mode_error
- 6.3
- 23260 EQUD 163840
- 6.3
- 23460 FN_work (163840)
- 6.3
- Then amend line 2 of !Run to read:
- 6.3
- wimpslot -min 288K -max 288K
- 6.3
- I’m working on other possible improvements to the software, such as mode
- 67 compatibility, but it occurs to me that others might be doing the
- same. If you are interested in participating in an informal user-group
- for the Vision Digitiser, please send an SAE to Stuart Bell, 23 Ryecroft
- Drive, Horsham, West Sussex RH12 2AW. A
- 6.3
- TechSoft
- 6.3
- From 6.2 page 19
- 6.3
- TechSoft
- 6.3
- From 6.2 page 15
- 6.3
- Risc Developments (2)
- 6.3
- New Artwork
- 6.3
- Using RISC-OS 3
- 6.3
- Hugh Eagle
- 6.3
- Many thanks to all those who have sent in material about RISC-OS 3.10.
- Hugh has done a lot of work for us in collating all this information, so
- read it carefully, check it out on your own systems and let us know if
- you find solutions to some of the problems and/or see more problems.
- This kind of information is very valuable indeed in terms of helping
- other people who have to go through the same learning curve as you, with
- the new operating system.
- 6.3
- I think it would also be good to send in a few ‘I hadn’t realised that
- you could... ...but it makes life much easier’comments.
- 6.3
- By the way, as at 28/11/92, N.C.S. actually has the £50 upgrades in
- stock although A5000 owners will still have to be patient, I’m afraid.
- Ed.
- 6.3
- (Throughout the column, references to RISC-OS 3 mean RISC-OS 3.10 unless
- otherwise stated. HE)
- 6.3
- After ‘The Long Wait’ and an acute dose of ‘Bent Pin Anxiety’, I had, to
- cap it all, ‘The Hunt For The Missing Apps 1 Disc’. After all that, I
- was quite surprised to find that the machine actually worked when I
- turned it on!
- 6.3
- Reconfiguring it so that it ran as well as it did before the upgrade,
- was quite a fiddly process. The main hint I would give to anyone who
- hasn’t yet done the upgrade is: watch your Fontmax settings!
- 6.3
- • In the Memory section of !Configure don’t be misled by the illustra
- tion on page 94 of the manual. You can not safely leave the “Font cache
- limit” setting at zero and expect the operating system to default to a
- sensible limit as you can with most of the other memory settings. Unless
- you set “Font cache” to a reasonably large amount, you must set a larger
- “Font cache limit”. (On a 4Mb machine, I have them set to 128Kb and
- 512Kb respectively.)
- 6.3
- • If you have a multisync monitor, read the bit on page 119 (in the
- section on screen modes!) when deciding what settings to use for anti-
- aliasing and cached bitmaps in the Fonts section of !Configure.
- 6.3
- • Keith Lowe adds − Where the upgrade instructions tell you to hold down
- the Delete key until the power-on self-test has been completed, they
- mean don’t release the key until text has appeared on the screen!
- Otherwise your old configuration will still be there and that can cause
- no end of confusion!
- 6.3
- • Ed Harris encountered problems in installing the user fit ROM carrier
- board from IFEL to his A310. IFEL were very helpful in providing advice
- and when Keith was still unable to track down his mistake, they sorted
- it out and returned it by return with only a nominal charge to cover
- their costs. Many thanks to IFEL.
- 6.3
- • Mark Lambert reports problems trying to install RISC-OS 3 in an A310
- fitted with a Watford 4Mb RAM upgrade (the second edition with a
- vertical daughterboard holding the processor). Watford have told him
- that a simple wire link is required on the RAM board but, as yet, they
- have not told him the exact details. Does anyone happen to know the
- details of the link required?
- 6.3
- • Steve Hutchinson writes: I was assured that it was quite simple to do
- the necessary hardware upgrade to my old A440. In the event, I managed
- it without hiccup but it was not quite so simple. I had to remove the
- main circuit board from the case − which means unplugging loads of
- things in my machine with all its upgrades. If you haven’t reasonable
- electronic experience, think twice!
- 6.3
- And is the upgrade worth it? For 1Mb or floppy disc only users, the
- answer must surely be yes. It must be a godsend to have the standard
- applications, plus fonts, plus modules, all in ROM. For hard disc owners
- .... well, what do you think? Some readers have no doubts.
- 6.3
- Ed Harris, for instance, writes: All in all, I have found RISC-OS 3.1 to
- be a great improvement on an already excellent operating system (RISC-OS
- 2) and well worth the cost of the upgrade. However, I wonder whether
- others share my disappointment that the improvements were not more
- dramatic? Perhaps now is the time for us to begin to compile a Wish List
- of things we would like to see in RISC-OS 4.
- 6.3
- Why not send your thoughts either to Archive or to me at the address at
- the end of this column?
- 6.3
- Most programs work well in RISC-OS 3
- 6.3
- Robert Macmillan of Colton Software has written to point out (further to
- Gerald Fitton’s comments in the Pipeline Column of Archive 6.1) that not
- only do all versions of Pipedream from 3.10 onwards work in RISC-OS 3,
- they all work better with RISC-OS 3. This is because RISC-OS 3 has the
- latest versions of system software built in and these perform better
- than the old versions supplied with RISC-OS 2. In particular, the font
- manager is much, much faster and the benefits of having the fonts built
- in make it possible for floppy disc users to make good use of fonts
- without inordinate disc swapping.
- 6.3
- Robert suggests that Archive should publish a table showing which of the
- most popular software packages work, and which don’t work or need
- upgrading. Judging by the number of needless phone calls he has been
- receiving, this would be of great benefit to users considering the
- upgrade to RISC-OS 3.
- 6.3
- I think the drawback with this idea is that although most people will
- report that most programs work perfectly well (and the list could
- potentially fill much of the magazine) some programs that do work well
- for most people seem to cause problems for some others.
- 6.3
- However, I do agree that it is important to emphasise that most programs
- do work and so, to set the ball rolling, I confirm that, from my limited
- experience and that of my friends, the following generally seem to work
- well:
- 6.3
- all the standard Acorn applications
- Impression 2.17 (but see below)
- Poster 1.21
- Artworks (all versions)
- Vector
- TWO
- Squirrel
- Pacmania
- E-Type
- Twin World
- Lemmings
- Gods
- 6.3
- Programs that need minor modifications
- 6.3
- • Sigmasheet (Minerva) must have FPEmulator in the same directory, even
- though that module is in ROM. (John Waddell)
- 6.3
- • First Word Plus release 1.1 − As my current word processor is First
- Word Plus release 1, I was worried by the assertion in the release notes
- that this was unuseable under RISC-OS 3.1. This happily proved not to be
- the case. If colour 14 within the WIMP palette is redefined, the menus
- become legible. I have created an obey file to invoke 1WP (on the
- monthly program disc) which loads a modified palette on entry and
- restores the default palette on exit. Using this, I have experienced no
- problems running 1WP. (Ed Harris)
- 6.3
- • DiscTree does not work correctly under RISC-OS 3. Oak Solutions are
- working on the problem.
- 6.3
- • InterWord – My copy of InterWord has its own directory in the hard
- disc root directory. It runs in 65Tube, which isn’t where it used to be
- under RISC-OS 2, and appears under a different name. To get InterWord
- going again, copy the new App2.!65Tube.!RunImage to the InterWord
- directory and rename it as 65Tube; it should now be sitting alongside
- !IWord in that directory. In the I/WORD.!IWORD.!RUN file, insert the
- following line after Set Interword$Dir <Obey$Dir>:
- 6.3
- RMLoad ADFS::HD4.$.IWORD.65Tube
- 6.3
- (where HD4 is the name of the hard disc). Double click on !IWORD in the
- usual way to start it.
- 6.3
- A similar method should apply to single floppy machines by substituting
- the appropriate floppy name for that of the hard disc above. (Ken Cowap)
- 6.3
- • Holed Out – I have a boot file on the hard disc which sets up the
- machine with some applications on the iconbar and some more on the
- pinboard. The golf game “Holed Out” finds this environment disagreeable
- and won’t start. The following gets it going:
- 6.3
- *CONFIGURE DRIVE 0
- 6.3
- *MOUNT :0
- 6.3
- <shift-break> (machine re-boots to bare-bones iconbar)
- 6.3
- Click Drive 0 icon to get “Holed Out” filer
- 6.3
- Double click !Boot
- 6.3
- Terminate the game with:
- 6.3
- Shift/Break
- 6.3
- *CONFIGURE DRIVE 4
- 6.3
- *MOUNT:4
- 6.3
- <ctrl-break> (machine re-boots to populated iconbar, etc) (Ken Cowap)
- 6.3
- • Chocks Away – The flight simulator Chocks Away isn’t quite so fussy
- about a populated iconbar and will generally start normally. However, if
- it does object, it may help to try a <ctrl-break> followed immediately
- by <escape>, which re-boots to an unpopulated iconbar, then double click
- on !Chocks. (Ken Cowap)
- 6.3
- Other program problems
- 6.3
- Mike Williams has supplied a list of programs that he has found don’t
- work under RISC-OS 3.1:
- 6.3
- Ground Control Teletext Adaptor (At the A.U. Show, Ground Control
- said they weren’t aware of any problems. HE.)
- 6.3
- Clares’ Arcade Games
- Quazer
- StarTrader
- Arcendium
- Corruption
- Terramex
- Boogie Buggy
- 6.3
- Ed Harris has found several public domain applications that have failed
- to run:
- 6.3
- Mandelplot (garbage on screen − machine locks)
- ChartDraw (“illegal window handle” error)
- Hyper (“illegal window handle” error)
- 6.3
- • Computer Concepts admit that ShowPage does not work with RISC-OS 3 and
- say that they have no plans to get it working with RISC-OS 3. There just
- is not the demand for this product to make it worthwhile doing the
- upgrade which is more like a complete re-write for the new operating
- system.
- 6.3
- Denis Fox reports problems with:
- 6.3
- • Impression (2.17) and LaserDirect (2.05) work much more slowly, even
- with Fontsize set to 256Kb and Fontmax to 512Kb. There are regular poor
- printouts, sometimes with patterned effects in what should be black
- areas, hang ups when transferring lots of text between documents and
- continual error messages when printing. (I have a similar setup but have
- not noticed any deterioration in performance. HE.)
- 6.3
- To help the speed, I suggest you try NOT using the ROM fonts − then you
- can have Quick Text switched on. To do this, add a FontRemove
- Resources:$.Fonts. in the !Fonts.!Boot file before the FontInstall
- <Obey$Dir>. command.
- 6.3
- I have once had the patterned effect in black areas but quitting and
- restarting the printer driver cleared it. Ed
- 6.3
- • Multistore V11 not printing with a Star LC24-200. (At the AU Show,
- Minerva said there may be problems with earlier versions and that users
- experiencing such difficulties should contact them quoting their version
- number. HE.)
- 6.3
- • Scanlight Plus 256 not working at all. (There are no known problems.
- Are you sure you have a power supply connected to the board? You do need
- the p.s.u. connected even on the A5000. Ed.)
- 6.3
- • A number of people have had problems (mainly “illegal window handle”
- errors) with versions up to 1.07 of my PD application PickAPic. I found
- that there was an error in the code that only occasionally caused
- problems in RISC-OS 2, but caused the program to crash quite often in
- RISC-OS 3, presumably because of a change in the way the window manager
- numbers its windows. Anyone who wants an upgrade to the latest version
- please write to me at the address at the bottom of this column. (Hugh
- Eagle)
- 6.3
- • Droom – I can’t get Droom to work. It reports “Not enough system
- sprite memory” whether I use Memalloc and the *Spritesize command (this
- used to work in RISC-OS 2), or the new *ChangeDynamicArea command, or
- whether I set the System sprites slider in the Task Manager window.
- (Hugh Eagle)
- 6.3
- • Compression − Computer Concepts have informed me that the release note
- for version 3.10 is slightly too pessimistic when it claims that
- Compression (up to version 1.10) does not work on RISC_OS 3.10. What
- apparently happens is that sometimes when you compress a directory with
- several files, the last file, instead of being processed, produces an
- error message. It can then be compressed singly. (In the first two weeks
- of working with the new OS, I have had no trouble with Compression, so
- the problem appears to be marginal. HE) (Jochen Konietzko)
- 6.3
- • Impression and the Pinboard − Can anyone tell me why the Pinboard has
- such problems with Impression documents?
- 6.3
- When I drag a compressed document onto the desktop, the next reset will
- produce an error message “Sprite does not exist”. Without Compression,
- the document does appear on the desktop but the Impression icon is
- replaced by the standard application icon. (Jochen Konietzko) (I seem to
- have no difficulty with Impression icons on the Pinboard in my
- Compression-less setup. HE)
- 6.3
- • PC Emulator (version 1.6) – I applied the patch to my copy of the PC
- Emulator (Version 1.6) and changed the filetype of the DOS partitions to
- DOSDisc as recommended in the release notes. I then found that the
- machine locked whenever I ran the emulator, even after a <ctrl-break>.
- Things worked perfectly, however, after the machine had been powered off
- and restarted. (Ed Harris)
- 6.3
- • Trouble with !FontFX − It has already been documented, at least twice,
- that !FontFX will not run under RISC-OS 3 and the suggested “fix” is to
- reset Font$Path using *SetMacro. Having done this, I still can’t get it
- to use the Trinity and Homerton fonts supplied in ROM. To get round the
- problem, I have renamed the original RISC-OS 2 versions OldTrinity and
- OldHomertn and installed them in my !Fonts directory on disc. Now
- choosing these from the fonts list in !FontFX works beautifully. So far
- there have been no side effects!
- 6.3
- It occurs to me that the problem may be that !FontFX is looking for
- files called IntMetric and Outlines (there are lots of references to
- these names in the !RunImage) whereas the files in ResourcesFS are
- stored as IntMetric() and Outlines(). The real answer would be for the
- program to be amended to accept either version of the filenames. I shall
- speak to DataStore to find out if they intend to make the necessary
- alterations. (Tom Harkness)
- 6.3
- The release notes say that FontFX must be more recent than 4.31 to work.
- My version, 4.08, works fine so long as you don’t use ROM fonts. If you
- do try to, it reports ‘Can’t find outlines’ and promptly exits from the
- iconbar! All other fonts seem fine, even from multiple directories.
- (Steve Hutchinson)
- 6.3
- • Ovation – Ovation meets a problem or two with RISC-OS 3 despite its
- recent update (version 1.35S). If text is indented (e.g. at the start of
- a paragraph) and is also justified, the correct format is presented on
- screen but when printed, the indented line projects to the right beyond
- the text frame. It is understood that Risc Developments are working on
- this. Also, if Ovation encounters a faulty outline font (e.g. containing
- a zero-width character, not uncommon in some PD fonts) it puts out an
- incorrect error message saying that the font cache is full. This bug is
- more likely to be purely Ovation’s rather than in conjunction with RISC-
- OS 3, but hasn’t been resolved as yet (except of course by ensuring that
- outline fonts are fault-free). (Ken Cowap)
- 6.3
- • ArcDFS – Since fitting the RISC-OS 3 upgrade, ArcDFS no longer works
- correctly and consistently comes up with error messages. This causes me
- great problems since, throughout our group of companies, we possess some
- 50+ Acorn BBC units ranging from the old BBC Model B’s (yes, they’re
- still going strong after eight years of service) through to Master
- 128’s.
- 6.3
- We are only just moving on to Archimedes and to maintain our wealth of
- information accumulated on our Beebs, I am transferring files from DFS
- to ADFS via a set of external 5¼“ disc drives I have had connected to my
- A3000. This has worked perfectly in the past with complete surfaces of
- DFS discs being transferred to ADFS in seconds. Without ArcDFS, I am
- left with only one solution − to *MOVE individual DFS files to 640Kb
- ADFS discs using a Master Series Computer and then transferring these
- 640Kb discs to the Archimedes. Clearly, this is a retrograde step after
- the convenience of ArcDFS.
- 6.3
- I have been in contact with Dabs Press and, although they are aware of
- the problem, they could not tell me whether or not they were going to
- make the necessary modifications to their software! I sincerely hope
- they receive a large enough response from their users to persuade them
- to produce an upgrade for this product. (S. J. Furnell)
- 6.3
- • !Alarm – A couple of tricky little bugs exist in the new Alarm
- application. I’ve already reported these to Risc User and trust they
- will advise Acorn in turn. If the Repeating Alarm facility is used to
- operate, say, every first Monday of every month, it malfunctions when
- the next month comes up to December. It advances a year instead of a
- month, going from November 1992 to December 1993.
- 6.3
- Perhaps less important, but still a nuisance if you want to use it, is
- the bug in the automatic BST to GMT facility. It refuses to accept
- entries for two different years such as were needed at the recent change
- on 25th October. Before that date, it should have been in order to enter
- 6.3
- BST starts on Sunday 28th March 1993 at 01:00
- 6.3
- BST ends on Sunday 25th October 1992 at 01:00
- 6.3
- but Alarm invalidates such an entry by altering the “starts” date to be
- earlier than the “ends” date. If one capitulates and enters the two real
- changeover dates for 1992, (hoping that Alarm will calculate forward
- into 1993) Alarm does indeed respond with a date in 1993 but only about
- 11 months ahead, on 1st March 1993. There is a fundamental difficulty
- for the programmer here. The changeover date doesn’t, as far as I know,
- follow a properly defined rule and tends to be arbitrary. I suspect that
- the programmer intended to issue a reminder to the operator 11 months
- after the last change so that the true date, known by then, could be
- entered. However, the algorithm obviously needs re-examination. (Ken
- Cowap)
- 6.3
- Can readers (or the manufacturers) offer any advice on how to overcome
- problems with these programs (or any others that have proved
- troublesome)?
- 6.3
- Hardware problems
- 6.3
- • Oak SCSI “Free Space” display – My Oak SCSI hard disc won’t use the
- new ‘Free Space’ window but uses the old RISC-OS 2 ‘stop-everything-and
- press-space’ window. The Release notes suggest that SCSIFiler will fix
- this for the Acorn SCSI card, but it doesn’t appear to for my Oak
- (v.1.16). Any thoughts? (Steve Hutchinson) (The solution to this was
- explained in Archive 5.5 p40. Ed.)
- 6.3
- • Digitisers, SCSI and the RS232 port – I managed to get RISC-OS 3
- fitted to my faithful A440 only to discover that my Technomatic
- (Brainsoft) Multipod Professional digitiser not only does not work with
- RISC-OS 3.10 but the computer will not work with the podule fitted.
- Richard Brain says that he was not aware of a problem and there are
- currently no plans for an upgrade, but he will have a look when he gets
- time to see if an upgrade is possible. In the meantime, I have no video
- digitiser, no stereo digitiser and no extra RS232 ports.
- 6.3
- I mentioned the problem to Malcolm Banthorpe and he tells me that his
- Pineapple digitiser is now “unwell” with RISC-OS 3.10. I wonder whether
- there are some differences in the way that podules download their ROM
- modules and initialise under RISC-OS 3.10?
- 6.3
- I also hear rumours that people are experiencing interrupt problems with
- SCSI interfaces causing data loss on the RS232 port (interrupts not
- returning quickly enough to avoid loss of incoming data on the port).
- Apparently, uncached Morley cards may be particularly prone but I have
- no first hand experience. It certainly fits in with Malcolm Banthorpe’s
- experience on his digitiser which seems to be suffering from an overdose
- of interrupts. (Tim Nicholson)
- 6.3
- Laser Direct RISC-OS 3 printer driver?
- 6.3
- It seems barely credible, but a whole year after RISC-OS 3 was first
- released, the Rolls Royce of Archimedes printers still lacks a RISC-OS 3
- printer driver. For many purposes this doesn’t matter, but rotated fonts
- seem a bit pointless if you can’t print them out, and users with more
- than one printer would like to be able to access their LD using the
- Print Manager.
- 6.3
- Readers have been getting contradictory explanations from Computer
- Concepts: one was told that they’ve been too busy writing Artworks,
- while another was told that Acorn haven’t given them a printer driver
- specification yet! (There’s an element of truth in both. Let’s just say
- that it is a non-trivial task to write a printer driver to work with
- Acorn’s Print Manager. Ed.)
- 6.3
- Other printer problems
- 6.3
- • Epson MX100-III – My printer is an ageing Epson MX100-III. Using the
- standard settings provided by the Acorn printer driver, I find thin
- lines can disappear. e.g. the staves in a Rhapsody score. Using the
- highest resolution setting (120 x 216 dpi dithered) produces an
- excellent standard of output but 1.5 to 2 times slower than the RISC-OS
- 2 driver (at a resolution of 120 × 144 dpi). (Ed Harris)
- 6.3
- • Print buffering – I have an Archimedes 420/1 expanded to 4Mb memory,
- with twin Cumana 5¼“ disc drives and recently equipped with ARM3 and
- RISC-OS 3.1. Ever since I installed RISC-OS 3.1, I have had a problem
- with printing. I use Impression most of the time but the same problem
- arises with Draw, Acorn DTP, DrawPlus, etc, etc. I shall put the problem
- in the form of a question: What is the point of a printer buffer that
- does not release control of the machine back to the user until the print
- job is finished?
- 6.3
- I wrote to Acorn as follows: Whatever setting I use for PrinterBuffer
- Size, it just does not seem to make any difference. I have 4Mb of memory
- and use Impression a great deal. Sometimes I set the PrinterBufferSize
- as high as 512Kb but the computer does not return control to the desktop
- until the document is completely printed. Under RISC-OS 2, I used a
- printer buffer program and found that I was able to work on a new
- document within a minute or two of sending the previous one to the
- printer provided the buffer was set high enough to accommodate all of
- the data being sent to the printer. Now the machine is always tied up
- until the printing is complete. How does one get the printer buffer to
- work? I use *Configure PrinterBufferSize to set the size of the buffer.
- Is there another command that I can use to make it operational and is it
- possible to turn it off (*Configure PrinterBufferSize 0Kb sets it to the
- default of 1Kb) and use one of the many printer buffer programs that are
- available?
- 6.3
- Acorn (Peter Dunn) replied: “Although the printer buffer does work in
- that data is passed into the buffer, control is not released back to the
- user until the print job is finished.”
- 6.3
- I have tried RMKilling the BufferManager but that stops all data being
- sent to the printer.
- 6.3
- I have devised a work-around but it is a little long-winded:
- 6.3
- 1. Have two versions of the chosen printer driver on the iconbar and
- make them active.
- 6.3
- 2. Set one (F) to send the data for the printer to a file on the hard
- disc and set the other (P) to send the data to the parallel or serial
- printer.
- 6.3
- 3. Select (F) by clicking on it and ‘print’ the document. A file called
- Printout will appear on the hard disc.
- 6.3
- 4. Change the name of the file called Printout to, say, Printoutx.
- 6.3
- 5. Select (P) by clicking on it and drag Printoutx onto the Printer icon
- that is yellow.
- 6.3
- The file will now print in the background and control is instantly
- returned to the user. Step 4 is not strictly necessary but is useful if
- you are printing longish documents and wish to, as it were, stack them
- ready for sending to the printer. If one does not change the name to
- something unique, there is a danger of overprinting one file with
- another. Instead of the hard disc one may, of course, use a floppy or
- RAMFS.
- 6.3
- This is quite a laborious work-around when one has a printer buffer
- built in (so one would think) to RISC-OS 3.1. A better arrangement must
- be possible and so I should be grateful for any hints or tips the
- readers can give. (M. P. Ireland)
- 6.3
- • Epson FX-105 – The driver for the Epson FX-85 does not work with the
- Epson FX-105 even though the printer manual suggests that they are
- virtually identical apart from the carriage width. The printout is
- always aligned along the left hand side even when it is supposed to be
- centered, etc. Furthermore, large letters, being sent in several
- separate lines, are often incorrectly aligned from top to bottom. When I
- raised this in my letter to Acorn, they replied as follows:
- 6.3
- “The Epson FX-105 does not support the ESC $ (remove leading white
- space) options supported by the FX-85 but does however support NLQ text
- printing. The decision by Epson not to support ESC $ in its newer
- printers has only recently come to light when testing the Epson LX-100.
- We have written a driver for the LX-100 which I am sure you will find
- works correctly with your printer.”
- 6.3
- A copy was sent to me and I can confirm that it does indeed work. (M. P.
- Ireland)
- 6.3
- • Bug in !Printers − If you configure two printers of the same type
- (e.g. a 300dpi HPLJ-2 and a 150dpi HPLJ-2) then delete the first one,
- !Printers crashes with an address error. (Mike Williams)
- 6.3
- • LaserJetII printer driver and Qume Crystalprint Series II – My problem
- concerns the LaserJet II printer driver. Quite simply, I always get an
- extra blank sheet for every page printed. Also stray characters appear
- in the left margin. The Qume CrystalPrint Series II printer is very
- similar to that used initially by Computer Concepts for their Laser
- Direct series, but mine isn’t a Laser Direct model.
- 6.3
- In the early days of RISC-OS 2, I vaguely remember I had a similar
- problem that was solved only when Acorn (fairly quickly) brought out
- another printer driver.
- 6.3
- In my efforts to solve the problem, I’ve tried lots of things – like
- changing margins, etc, etc. I’ve had long discussions with Gerald
- Fitton, too. From him, I know that others have plenty of problems,
- though perhaps not quite like mine. The silly thing is that all was OK
- with the RISC-OS 2 driver but, despite the impression given in Risc
- User, neither of us thinks that RISC-OS 2 drivers can be used with RISC-
- OS 3. Is this correct, I wonder? If they can be used, that would be a
- good temporary solution. (John Jordan)
- 6.3
- • Getting the page length right – After quite a number of abortive
- attempts to set the page length for 12 inch fanfold paper, I finally
- found out that any changes I make become effective (at least on my
- combination of machines) only after I have saved all changes, quit and
- then reloaded the printer driver. (By the way, the correct setting for
- my Fujitsu DL1100 printer, using the Epson LQ860 emulation is, for some
- inscrutable reason, 12.309 inches, 72 lines). (Jochen Konietzko)
- 6.3
- • Panasonic KX-P1124 – Probably my most difficult problem was with the
- printer drivers. The old RISC-OS 2 drivers just have to be abandoned −
- they merely generate an error message. My printer happens to be a
- Panasonic KX-P1124 (24-pin dot matrix, monochrome) but Acorn haven’t
- seen fit to include any Panasonic printers at all. Though they blandly
- say that one of the others will probably be near enough, in fact, it
- requires a considerable amount of research to be confident that the
- range of control codes is (a) sufficient to fully exploit the machine’s
- capabilities and (b) doesn’t contain any alien codes to cause unwanted
- results. At the end of the day (or several!) I reduced the probables to
- two, the Epson LQ860 and the NEC P6+ (despite the fact that both
- machines are colour printers). I had misgivings about the NEC which
- includes, in its control code repertoire, some which started with 28
- instead of the old familiar 27 (Escape). The matter was finally clinched
- when I was able to question an Acorn representative at the Acorn User
- Show. He told me that quite definitely I should use the Epson LQ860. So
- this I do, and without any problems so far. I haven’t even edited out
- the control codes for the colours − the driver is used, unmodified. (Ken
- Cowap)
- 6.3
- Where are the hare and the tortoise?
- 6.3
- Can I get the hare and tortoise icons that came with my ARM3 back on the
- iconbar? Or do I have to tell people that if they want E-Type to go at a
- playable pace they have to press <F12> then type “Cache off” then press
- <return> twice before running it?! (I just use
- 6.3
- RMEnsure Arm3Icon 0.9 Run scsi::4 .$.<leafname>.!Arm3
- 6.3
- in my !boot file and... hare presto! Ed.)
- 6.3
- Programmers’ Reference Manual
- 6.3
- At the Acorn User Show, a “beta” copy of the new PRM was on sale in
- photocopy form for £120. The final version will apparently be available
- “in the first quarter” of 1993. It is about 50% bigger than the RISC-OS
- 2 manual and will fill six volumes. From my brief inspection, it looks
- as if it contains quite a lot more explanatory material than its
- predecessor. I was told that neither the price of the final version nor
- details of the trade-in arrangements (if any!) have yet been fixed.
- 6.3
- Various hints and tips:
- 6.3
- • Problem with Impression dongle − You can’t write to a printer when the
- Impression dongle is fitted unless you have run the Impression appli
- cation first. (Mike Williams)
- 6.3
- • Summer time blues − Some C programs (e.g. PVray) get the time wildly
- wrong when *BST is configured. (Mike Williams)
- 6.3
- • Bug in !SciCalc − It gives wildly inaccurate results to the <±>
- function for some values, e.g. if you enter “1<Exp>56” then press <1/x>
- to give “10E−57” then press <±> you get the surprising result: “10E−58”.
- If you press <±> again, you get “10E−41”. (Mike Williams)
- 6.3
- • Where did this file come from? − There are quite a few ways in which
- <adjust> clicking can be very helpful. I’m sure you all know that
- <adjust> double-clicking a directory opens it and closes the parent and
- that using <adjust> to close the directory opens up the parent. You may
- even know that clicking the close icon with <adjust> while holding down
- <shift> actually opens the parent without closing the directory. What
- you may not have noticed is that you can do the same with (some)
- applications. With most applications, it seems, <adjust> double-clicking
- a file loads the file and closes the directory from which it came. (I
- think this is a function of the Filer and is therefore true for all
- applications and files. HE.) Then, if you click in the close box with
- <adjust>, holding <shift> at the same time, the directory from which the
- file came appears on screen without the file disappearing from view.
- With Impression, however, there is no need to hold <shift> as well −
- just using <adjust> on the close box brings up the directory viewer in
- which the file is saved.
- 6.3
- Oh, and I’ve only just discovered that if you draw a window’s scroll bar
- with <adjust>, you can move about in both x and y directions! (Paul
- Beverley)
- 6.3
- • Rubber-banding − Those who have gone straight to RISC-OS 3 without
- reading the manual (like Ed!) may not have noticed that you can use
- rubber-banding to select a group of files. So instead of <adjust>
- clicking every individual file you want to select, you can click
- <select> in the space between two file icons and, as you drag, a red
- bounding box appears which you can release when it is over the files you
- want. Using <adjust> instead of <select> simply adds files to those
- already selected but note that if you go over a file that is already
- selected, it is then de-selected. (Paul Beverley)
- 6.3
- • SerialDeviceDriver module − On an A5000, never unplug the module
- called “SerialDevice Driver”, as the following strange things will
- happen. After a power off/on the machine will boot up but, during
- booting, an error message “Error from Task Manager” will appear and
- there is only a “Cancel” button to click on. Then the boot up is
- finished correctly but no Taskmanager is present! It will only reappear
- if you double-click on any file with the new Desktop filetype (&FEA),
- even if this is 0 bytes long! In addition, the Taskmanager will not
- function correctly in all cases: try to get an “!Edit Task Window” now.
- Bug or not? (Carsten Bussman)
- 6.3
- • Double-clicking into Basic − On my first machine (which was killed by
- my dealer while trying to fit a SCSI hard drive) I was able to enter BBC
- Basic V directly by double-clicking into the system’s start-up message
- window (“RISC-OS ... initialising”). This does not work with my current
- machine (Serial no. 1009939); I don’t know why. This was a nice feature
- which I’m missing now, so why isn’t it implemented in all RISC-OS 3
- ROMs? (Carsten Bussman)
- 6.3
- • Inserting path names into !Edit − Try dragging any file or directory
- into an !Edit window while pressing the Shift key. This will give the
- file’s pathname. (Carsten Bussman)
- 6.3
- • “Menu Area Full” error in FormEd – Captain K. J. Tompkins reports the
- error “Menu Area Full (Internal code 6560,1)” from his version of
- !FormEd. This is probably because he has one of the earlier versions of
- this program which only allows limited space for building its menus and
- is defeated if there are too many fonts installed. If so, it is fairly
- easy to cure: in the Basic program called !RunImage inside the !FormEd
- directory there is a line that reads something like:
- 6.3
- DIM menufree% &1800: menuend% = menufree%+&1800
- 6.3
- (this is at line 790 in the version I’m now looking at). If each of the
- two &1800’s is replaced by &2000, so that the line reads:
- 6.3
- DIM menufree% &2000: menuend% = menufree%+&2000
- 6.3
- the program should work.
- 6.3
- (Note: this hint does not apply to all versions of FormEd) (Hugh Eagle)
- 6.3
- • Filer_Run syntax − it seems that the command
- 6.3
- *Filer_Run <App$Dir>
- 6.3
- (where App$Dir is a system variable set to the name of an application)
- doesn’t run the application as you might expect. What it does is to open
- a filer window on the application’s directory with “<App$Dir>” (not the
- actual pathname) in the title bar.
- 6.3
- The following syntax, however, does seem to work:
- 6.3
- *Set Alias$FR Filer_Run <App$Dir>
- 6.3
- *FR
- 6.3
- *UnSet Alias$FR
- 6.3
- (this is equivalent to the old trick that used to be needed in RISC-OS 2
- to open a directory viewer with *Filer_OpenDir). (Hugh Eagle)
- 6.3
- • *FontRemove syntax − The FontRemove star command seems to be very
- fussy. You have to tell it the name of the directory that you want to
- remove in exactly the form in which it is included in the Font$Path
- system variable. For instance, if you want to remove
- RAM::RamDisc0.$.!Fonts. from Font$Path you must type
- 6.3
- *FontRemove RAM::RamDisc0.$. !Fonts.
- 6.3
- including both the disc name (RamDisc0) and the full stop at the end.
- (Robert Chrismas has sent in a handy application called !FontsCut which
- lists the directories currently included in Font$Path with numbers
- beside them and all you have to do is type in the number corresponding
- to the directory you want to remove. This is included on the monthly
- program disc.) (Hugh Eagle)
- 6.3
- • Configuring Shift Caps − In the Caps lock section of the Keyboard
- window of !Configure, the effects of “Caps lock on” and “Shift caps”
- seem to be reversed. In other words, selecting “Caps lock on” means that
- holding down <shift> reverts to lower case whereas selecting “Shift
- caps” means that you get upper case regardless of whether <shift> is
- held down or not. (Hugh Eagle)
- 6.3
- • Mouse button codes – If you enter and run the following simple Basic
- program:
- 6.3
- REPEAT
- MOUSE X,Y,B
- PRINT TAB(10,10)B
- UNTIL FALSE
- 6.3
- then watch what number is displayed on the screen as you press the
- various mouse buttons you will see:
- 6.3
- no button 0
- 6.3
- Select 4
- 6.3
- Menu 2 for an instant, followed by 0
- 6.3
- Adjust 1
- 6.3
- The behaviour of the menu button has changed from RISC-OS 2, I think.
- Those programs that are interested only in detecting whether the button
- has been clicked won’t be affected, but the change can cause problems
- for programs that want to detect whether the Menu button remains held
- down. Luckily, there is a simple solution: the function
- 6.3
- INKEY(-11)
- 6.3
- will return the value TRUE however long the Menu button is held. (Hugh
- Eagle)
- 6.3
- • Getting Art Nouveau to run – Hands up those who remember Art Nouveau?
- Well, this excellent old program has one quirk, namely that you have to
- hold down the menu button while you move round the menu tree until you
- make your selection. So, because of the changed functioning of the mouse
- button (see above), it doesn’t work in RISC-OS 3.1 unless you make a
- slight modification. In the Basic program called ArtNouveau from the
- directory ANfiles at line 30950 in my version there is a line that
- reads:
- 6.3
- WHILE stayopen AND mbut=2
- 6.3
- I have found that altering this to:
- 6.3
- WHILE stayopen AND INKEY-11
- 6.3
- restores the program to health. (Hugh Eagle)
- 6.3
- • Using a TaskObey file to display a message – The new filetype
- “TaskObey” is useful if you want the !Run file of an application to pop
- up a message in a window without halting the whole system. You might use
- this for instance to display a warning to change the setting of your
- printer. Thus, to display “This is a message” in a window, create a file
- called, say, Message containing:
- 6.3
- Echo This is a message
- 6.3
- set the filetype to TaskObey and include, in the application’s !Run
- file, the line
- 6.3
- Filer_Run <Obey$Dir>.Message
- 6.3
- If you had set the filetype to Obey, the message would pop up moment
- arily then disappear before the application loaded. (Hugh Eagle)
- 6.3
- • Deskboot files and the Pinboard – The User Guide explains how to
- create a !Boot file to boot the computer in your desired configuration.
- It adds that, when saving the !Boot file, information to start up
- applications produced before RISC-OS 3 is not saved automatically. To
- get round this, it explains how to rename the !Boot file as Deskboot and
- to incorporate it in a !Boot application. It goes on to explain how to
- edit the Deskboot file, either to remove or to add lines as necessary.
- 6.3
- If you use the Pinboard as I do, some icons will be changed on a regular
- basis. For example, I have regularly used files which change each month.
- If the Deskboot file is saved each time the Pinboard is changed, a
- certain amount of what the User Guide calls “hand editing” would have to
- be done each time a change is made, to remove or add relevant
- instructions.
- 6.3
- There is an easy solution. Set up your Desktop once and save the
- Deskboot file. Then click <menu> over an empty space on the desktop and
- save the Pinboard settings in the Pinboard file in your root directory.
- Now drag your Deskboot file into !Edit (or Shift-double-click on it) and
- delete all the lines which begin “Pin”. Alter the line “Pinboard” or
- “Pinboard -Grid” to read “Run Pinboard” or “Run Pinboard -Grid”.
- 6.3
- Future changes to the Pinboard setting now need be saved only to the
- Pinboard file in your root directory. (John Waddell)
- 6.3
- Ken Cowap warns that a DeskBoot file can easily be unnecessarily
- cluttered if, for instance, there are a number of unwanted items on the
- screen when it is made. This will incur a penalty in the time taken to
- boot up − his started at two and a half minutes before he trimmed it
- ruthlessly.
- 6.3
- • ADFS buffers − According to Acorn’s telephone help line, the bug which
- made it advisable to configure the adfs buffers to zero has been fixed!
- (According to Computer Concepts, unless the buffers are configured to
- zero, it is vital to dismount disks before removing them for good from
- the machine, because otherwise there may be trouble later.) (Jochen
- Konietzko)
- 6.3
- • OS_Byte calls and the serial port – I use my A3000 for many purposes,
- one of the more important being as a terminal to our mainframe computer.
- The software for this I have written myself in Basic. After the upgrade,
- my terminal program wouldn’t work. It would not accept characters from
- the serial port. I tried using the serial port utility module supplied
- with the upgrade, but this did not help.
- 6.3
- After a lot of experimenting, we finally discovered that if we changed
- all the *FX calls for SYS “OS_Byte” calls, then the program would work.
- It still puzzles me why two supposedly similar commands should give
- different results! (S. J. Furnell)
- 6.3
- • Z88 Filers – The Release Note says that the !Z88 filer supplied with
- Pipedream requires interactive filing to be off. You’ll be pleased to
- know that David Holden’s !Z88 filer (Careware 7) suffers from no such
- problems. (Steve Hutchinson)
- 6.3
- • Programs that call machine code from Basic – An application I used a
- lot, !BPrint (Risc User) wouldn’t run with RISC-OS 3, and the cure for
- this may well apply to other applications organised in a similar layout,
- i.e. using a central Basic program calling a separate piece of machine
- code. The cure was to re-assemble the code under RISC-OS 3; obviously
- there is some small difference between its assembler and that of RISC-OS
- 2. In this particular application, its “ancestor” (the program developed
- over a period of time), a program called FileList from vol.2 issue 5 was
- rerun to produce the assembled file BLIST which was substituted for the
- original. (Ken Cowap)
- 6.3
- • Mode number conflicts – A program for plotting Mandelbrot diagrams
- failed with RISC-OS 3 and the manner of its failure may indicate a cure
- for others. This particular program called a Mode 40 which didn’t exist
- under RISC-OS 2 but which was specially designed and provided with the
- program. RISC-OS 3 of course does have a native Mode 40 and a clash
- between it and the “special” gave rise to the error report. The cure was
- to rename the “special” to a mode number outside the range provided with
- RISC-OS 3, in this case Mode 50. (Ken Cowap)
- 6.3
- • Setting !Alarm options – This is a minor matter, unless you are trying
- to set your own !Alarm display format in a !Boot file. This you do with
- a Set Alarm$Options line (p136 App Guide). The quotes are omitted. This
- is my (working) line:
- 6.3
- Set Alarm$Options -format “%z24:%mi %zdy.%zmn.%zyr”
- 6.3
- If you use a !Boot file and !Alarm, put it in to see my favourite
- display format! (Steve Hutchinson)
- 6.3
- Miscellaneous comments
- 6.3
- • Surely a ‘grown up’ operating system shouldn’t say, “Disc error 10 at
- :0/00000000” when you try to read an unformatted disc?
- 6.3
- • It seems strange that !Configure requires you to press <return> after
- typing into a writable icon. This is not normal RISC-OS convention.
- 6.3
- • It’s a shame that they didn’t manage to squeeze some suitable backdrop
- sprites onto one of the RISC-OS 3 discs. Those who have access to
- Windows 3 might like to know that its wallpaper bitmaps seem to work
- very well on the RISC-OS 3 Pinboard, and it is very easy to transfer
- them from an MS-DOS floppy, via !ChangeFSI (on the Support disc), into
- sprite format on an Archimedes disc. The file called “leaves.bmp” makes
- an excellent seasonal backdrop (I’m writing this in October!).
- 6.3
- Alt-key combinations
- 6.3
- The last couple of issues of Archive have contained lists of Alt-Key
- combinations in RISC-OS 3.1. To complete the picture I would add:
- 6.3
- To get accents ( ´ ` ¨ ^ ° ¸ ) on their own, press the appropriate Alt-
- key combination (e.g. Alt-[ for a ´ ) then the space bar.
- 6.3
- Alt-Spacebar gives a “hard space” or “non-breaking space” (the sort you
- put between “NR2” and “2SD” if you don’t want Archive’s postcode
- “NR2 2SD” to be split over two lines.)
- 6.3
- I have put a diagram of the keyboard showing the Alt-key combinations
- below, and I hope that Paul will put the drawfile on the monthly program
- disc.
- 6.3
- Incidentally, I am a bit puzzled about the character (code 173) that is
- produced by the Alt-hyphen combination. What’s it for? I thought at
- first that it was the “soft hyphen” that is described on page 109 of the
- Impression 2 manual, but I now see that this is produced by Ctrl-hyphen
- (this character – code 31 – is normally invisible but indicates a
- preferred place for breaking a word with a hyphen at the end of a line;
- it works even if the hyphenation module is not present). By contrast,
- character 173 is, so far as I can see, always visible (as a hyphen if
- the font follows the Acorn standard) but its effect is to prevent a word
- into which it is inserted ever being broken over the end of a line even
- if hyphenation is switched on. Am I correct in describing it as a “hard
- hyphen”? (Well, I can think of one application. Suppose you want to use
- a word like “prayers” where you deliberately hyphenate the word to
- refer to the people doing the praying. In that case, if it were an
- ordinary hyphen, the word might get split at the end of a line. Using a
- ‘hard hyphen’ avoids the split. Ed)
- 6.3
- The upgrade again
- 6.3
- Finally, I thought it would be good to take a slightly light-hearted
- look at the subject as we hear the experiences that Rob Wears had in
- fitting and using RISC-OS 3 on an A310...
- 6.3
- I finally managed to get my grubby mitts on the RISC-OS 3 upgrade at the
- Acorn User show, and arrived back home with that odd mixture of terror
- and excitement that comes from having to take the lid off the machine.
- I’ve fitted one or two things in the past, like the soldered 4MByte RAM
- upgrade, but no matter how many times I do it, it’s still a bit like
- performing neurosurgery on a close friend. Will Archie pull through,
- Doc? Actually, fitting was a lot easier than I’d thought. I used the
- IFEL carrier board, as their memory upgrade has proven so reliable. My
- only source of concern was the discrepancy between their fitting
- instructions and the ones supplied by Acorn which alluded to changing
- links on the mother board. I followed the IFEL guidelines, which had the
- link changes on their board, and waited anxiously for the machine to
- explode when I switched it on. No problem, apart from the fact that I
- bypassed the desktop and ended up at the command line. Still, the
- desktop was easily accessible with a simple “*” command.
- 6.3
- The hard drive icon was where it should be (and no longer jumped around
- when I mounted or dismounted the disc!) and I am pleased to say that I
- encountered no problems with the Oak SCSI board (version 1.16 of SCSI
- driver).
- 6.3
- I couldn’t resist the urge to delve into the Apps directory, and here I
- encountered my first problem. Initially, I couldn’t get !Edit to load
- from Apps and was greeted with the wonderfully informative message ‘File
- “Basic” not found’. Fighting the sudden tide of panic (“It wouldn’t work
- at all if the ROM legs were snapped off, idiot!”) I checked the module
- list via the command line and found that I was apparently the lucky
- owner of the one set of chips which Acorn had shipped without putting
- Basic on board first. I was about to fall on my soldering iron in
- despair when I thought of checking the status of the system modules
- using *ROMModules and found that the Basic module was unplugged. I
- reinitialised the module, and !Edit worked fine. There, that wasn’t too
- bad − the hair will probably grow back and nobody will notice the
- teethmarks on the manual....
- 6.3
- Incidentally, the ARM3Support module was also unplugged and therefore
- the *Cache command wouldn’t work, but I’d got the hang of things by now,
- and pressed on happily. I t